externe Properties datei aus Jar File heraus lesen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich würde gern aus einem Jar File eine externe Properties Datei einlesen. Wenn die Datei im jar File liegt klappt alles. Aus Eclipse lässt sich das Programm auch starten. Wenn ich allerdings die properties ausserhalb des Jars platziere, bekomme ich eine NullPointerException.

Ich gebe im Programm des absoluten Pfad zur Datei an: C:/Dokumente und Einstellungen/.....

Muss ich die Datei zusätzlich noch irgenwo einbinden, damit es funktioniert ?

Wie gestaltet sich eine Einbindung ?



VG
 
G

Gast

Gast
Ja im Prinzip schon. Jedoch funktioniert es ja bei mir im Eclipse und auch wenn die properties im Jar File liegt. ich denke, es muss auch anders funktionieren, ohne, dass ich meinen Code noch einmal anpassen muss.

Ich muss dem Jar File doch nur sagen, welche datei eingebunden werden soll.

oder sehe ich das falsch ?
 

diggaa1984

Top Contributor
hm na absolute angaben sind eh immer kritisch ... aber die datei liegt quasi nicht im selben ordner wie die jar, sondern irgendwo anders!?
 
G

Gast

Gast
Ich habe ein Verzeichnis auf meinem Desktop mit dem namen Export. Hierin befindet sich die Jar mit allen Libraries und die config.properties. Leider wird diese dann nicht gefunden.
 
G

Gast2

Gast
Anonymous hat gesagt.:
[...]Wenn ich allerdings die properties ausserhalb des Jars platziere, bekomme ich eine NullPointerException.
wenn Du eine NPE bekommst, dann verarbeitest Du einen Fehler der beim Öffnen der properties_Datei auftritt falsch ... das muss noch nicht mal was mit dem Pfad zu tun haben

aber ohne Quellcode kann man nur orakeln

hand, mogel
 

diggaa1984

Top Contributor
lässt aber trotzdem darauf schliessen, das er die datei in dem moment nicht finden kann .. was er ja aber unbedingt möchte :D
 
G

Gast

Gast
Vielen Dank für die Unterstützung...

Ja, er findet die datei nicht. das steht zu 100% fest. meine Frage ist eigentlich ganz einfach: Was muss ich tun, um eine externe properties datei in mein Jar File einzubinden?

Muss ich hier vielleicht den Classpath in der Mainifest datei eintragen?
 
G

Gast2

Gast
Gast hat gesagt.:
[...]er findet die datei nicht. das steht zu 100% fest.[...]
nein - Du bekommst eine NullPointerException und keine FileNotFoundException ... kläre erstmal warum Du die NPE bekommst ... Du kannst jede Datei normal außerhalb einer JAR als Stream öffnen ... das ist keine Hexerei

Code:
BufferedReader br = new BufferedReader(new FileReader("data/" + name + ".txt"));
hier befindet sich die Datei (relativ) in einem Unterverzeichnis von der JAR-Datei

Code:
BufferedReader br = new BufferedReader(new FileReader("c:/Dokumente und Einstellungen/$WHATEVER/data/" + name + ".txt"));
und nun absolut zur jeder beliebigen Datei

selbst wenn FileReader die Datei nicht findet kommt eine FileNotFoundException!



kläre die NullPointerException und dann kannst Du nochmal behaupten kommen

hand, mogel
 
G

Guest

Gast
Hier einmal meine Fehlermeldung:

Code:
java.lang.NullPointerException
        at java.util.Properties$LineReader.readLine(Unknown Source)
        at java.util.Properties.load0(Unknown Source)
        at java.util.Properties.load(Unknown Source)
        at dao.Sysproperties.loadProps(Sysproperties.java:103)
        at dao.Sysproperties.<init>(Sysproperties.java:51)
        at dao.Sysproperties.getInstance(Sysproperties.java:65)
        at dao.StoryDAO.<init>(StoryDAO.java:39)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at dao.DAOFActory.getDAO(DAOFActory.java:36)
        at controller.StoryController.<init>(StoryController.java:33)
        at export.Export.main(Export.java:29)
Exception in thread "main" java.lang.NullPointerException
        at java.util.Properties$LineReader.readLine(Unknown Source)
        at java.util.Properties.load0(Unknown Source)
        at java.util.Properties.load(Unknown Source)
        at dao.Sysproperties.loadProps(Sysproperties.java:103)
        at dao.Sysproperties.<init>(Sysproperties.java:51)
        at dao.Sysproperties.getInstance(Sysproperties.java:65)
        at export.XMLCreator.<init>(XMLCreator.java:29)
        at export.Export.main(Export.java:30)


mein Code:

Code:
public class Sysproperties {

	public final static String PROPERTY_NAME = "C:/dokumente und einstellungen/All Users/Desptop/Exporter/config.properties";


	//Statisches Object speichert eine Instanz der eigenen Klasse
	static Object instance;

	// Properties Object
	static Properties properties; 



	final String config;


	/**
	 * Instanziiert ein Properties-Objekt und stößt den Ladevorgang an.
	 * @param config  Dateiname der Konfigurationsdatei
	 */
	public Sysproperties(String config){

		properties = new Properties();
		this.config = config;

		//Properties Datei laden 
		loadProps();

	}


	/**
	 * Gibt GENAU eine Instanz dieser Klasse zurück.
	 * Sysproperties ist so ein Singleton.
	 * 
	 * @return Instanz der Klasse
	 */
	public static Sysproperties getInstance(String config) {

		if (instance == null) {
			instance = new Sysproperties(config);
		}
		return (Sysproperties) instance;
	}


	/**
	 * Hier werden alle Einstellungen aus der Konfigurationsdatei
	 * in das Properties-Objekt geladen.
	 */
	@SuppressWarnings("unused")
	private boolean loadProperties() {

		boolean data = false;

		try {
			properties.load(new FileInputStream(config));
			data = true;
		} catch (final FileNotFoundException e) {
			System.out.println("Config File konnte nicht gefunden weren oder existiert nicht.");
			data = false;
			e.printStackTrace();
		} catch (final IOException e) {
			System.out.println("Es ist ein Fehler beim Lesen der Config Datei aufgetreten.");
			data = false;
			e.printStackTrace();
		}

		return data;

	}// end of load Properties
	
	
	private boolean loadProps() {

		boolean data = false;
		try
        {
            properties.load(getClass().getClassLoader().getResourceAsStream("config.properties"));
            data = true;
        }
        catch (IOException e)
        {
            //logger.error("Cannot locate axis.properties file", e);
        	data = false;
        }

		

		return data;

	}// end of load Properties



	/**
	 * Gibt einen bestimmten Konfigurationsparameter zurück.
	 * @param aPropertyName Name des Parameters
	 * @return Wert des Parameters
	 */
	public String getPropertyValue(String aPropertyName)
	{

		return properties.getProperty(aPropertyName);

	}


public void setPropertyValue(String value, String aPropertyName){
	
	properties.setProperty(aPropertyName,value );
		
	 try { 
		 properties.store(new FileOutputStream("config.properties"), null);
		} catch (IOException e) { 
			System.out.println("Konnte den Wert in der config.properties nicht ändern!");
		} 

		
	}


}// end of class

Ich nutze derzeit die >Funktion loadProps() zum Laden der Properties Datei...
 
G

Gast

Gast
Ja jetzt sehe ich es selbst, merde :)

properties.load(getClass().getClassLoader().getResourceAsStream("config.properties"));

ist quark...

Da muss natürlich PROPERTY_NAME rein :)
Ich hoffe, das is es ...
 

mvitz

Top Contributor
Über den Klassloader hilft es sonst auch die Datei in den Classpath aufzunehmen und nur über den Namen zu referenzieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Java gewerblich nutzen mit externe Bibliothek. Was zu beachten? Allgemeine Java-Themen 18
OSchriever Externe Anwendung beenden Allgemeine Java-Themen 41
T Externe Java Klasen zur Laufzeit einbinden Allgemeine Java-Themen 10
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
V JTable Externe Lib Allgemeine Java-Themen 2
JavaWolf165 Externe .jar-Dateien in .jar-Datei intigrieren Allgemeine Java-Themen 0
Neumi5694 Externe Skripte Allgemeine Java-Themen 9
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
S Externe Eclipse Projekte dynamisch einbinden Allgemeine Java-Themen 3
Thallius Externe .jar dynamisch einbinden Allgemeine Java-Themen 5
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
M Externe Jar sehr langsam Allgemeine Java-Themen 23
C Prozesssteuerung - Speicherhungrige externe Programme werden blockiert Allgemeine Java-Themen 2
F externe module. geht das in Java? Allgemeine Java-Themen 3
G Eclipse Wie mit Ant build.xml externe Jar´s einbinden? Allgemeine Java-Themen 5
M Wie externe System-Ressourcen zwangsweise freigeben Allgemeine Java-Themen 2
B Externe Programme und ProcessBuilder Allgemeine Java-Themen 5
nrg Externe Library Lizenzen Allgemeine Java-Themen 14
D externe programme / Jdesktoppane, ... Allgemeine Java-Themen 6
U Externe Logiken möglich? Allgemeine Java-Themen 8
G externe Steuerung von Sprachsoftware Allgemeine Java-Themen 3
C Externe Bilder in Java-Applet blocken? Allgemeine Java-Themen 2
B Eclipse externe Dateien mit einbinden Allgemeine Java-Themen 10
H externe JARs in eigenem Programm-Jar einbinden. Allgemeine Java-Themen 5
N externe Anwendung aktivieren (nicht starten!) Allgemeine Java-Themen 3
H Externe Prozesse und Inputstreams - ausgabe in JTextArea Allgemeine Java-Themen 3
oliver1974 Zugriff auf externe .class Dateien (und resourcen) aus JAR Allgemeine Java-Themen 11
G externe package Allgemeine Java-Themen 7
E externe Anwendung aufrufen und sich selbst beenden Allgemeine Java-Themen 8
W Java und externe Anwendungen Allgemeine Java-Themen 3
J Externe File Emails für JavaMail Allgemeine Java-Themen 4
J Externe .jar bibis in programm .jar einbinden? Allgemeine Java-Themen 9
R externe Libraries in jar-file Allgemeine Java-Themen 16
R Kontrolle über Externe Prozess Allgemeine Java-Themen 5
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
M Standardpfad für externe Dateien? Allgemeine Java-Themen 2
R aus Jar auf externe XML-Datei zugreifen Allgemeine Java-Themen 14
I externe Namensliste auslesen Allgemeine Java-Themen 13
M Java2exe Externe Packages einbinden! .JAR und sowas Allgemeine Java-Themen 7
thE_29 Externe (unbekannte) Klasse nutzen Allgemeine Java-Themen 11
J Externe Ansteuerung (Motor,Licht) mit Java? Allgemeine Java-Themen 4
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
S Test mit Werten aus der .properties Allgemeine Java-Themen 4
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
K Properties serializable machen Allgemeine Java-Themen 6
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
Baldur BeanInfo für Properties-UI? Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
B Objekte anhand von Properties file Allgemeine Java-Themen 41
W Input/Output Kann .properties Datei in kompilierter .jar nicht ändern Allgemeine Java-Themen 2
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
I Best Practice Properties auslesen und splitten (RegExp?) Allgemeine Java-Themen 0
OnDemand Lesen aus Properties Allgemeine Java-Themen 7
D JAVA - Properties Datei mit Userdaten Allgemeine Java-Themen 7
M StripesResources.properties Allgemeine Java-Themen 2
GUI-Programmer Mehr als Properties Allgemeine Java-Themen 6
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
Mr. Pink Erste Schritte Checkstyle.properties Allgemeine Java-Themen 3
B Properties File Liste Allgemeine Java-Themen 3
X Probleme mit meinem Properties Allgemeine Java-Themen 9
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
D Properties Datei, Eingabequelle Allgemeine Java-Themen 6
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
C JAR, Pfad und Properties Allgemeine Java-Themen 17
R Properties Datei aus Applikationsverzeichnis lesen Allgemeine Java-Themen 5
T Properties Datei nicht jedes mal neu schreiben? Allgemeine Java-Themen 2
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
M Probleme mit UTF-8 und properties Allgemeine Java-Themen 6
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
T Properties Datei nicht löschbar Allgemeine Java-Themen 8
S Properties binden Allgemeine Java-Themen 2
nrg Knotenpunkte in Properties Allgemeine Java-Themen 9
U Properties in Jar Files Allgemeine Java-Themen 3
S Properties-Dateien anwenden Allgemeine Java-Themen 8
G Alternative zu .properties Dateien Allgemeine Java-Themen 20
nabla Gutes einlesen von Konfigurationsdateien (Properties?) Allgemeine Java-Themen 11
E Properties +SerialPort Allgemeine Java-Themen 9
H Java Properties Allgemeine Java-Themen 5
A kann nicht auf properties außerhalb jar zugreifen Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
Y Properties verwalten! Allgemeine Java-Themen 3
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
F Properties verschlüsselt speichern Allgemeine Java-Themen 5
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
A Hardware Properties auslesen Allgemeine Java-Themen 10
P Properties liest nicht alles aus Datei aus Allgemeine Java-Themen 17
J Properties sortieren Allgemeine Java-Themen 6
I Properties.contains("Hell*orld"); Allgemeine Java-Themen 14
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
N Java Properties Allgemeine Java-Themen 14

Ähnliche Java Themen


Oben