java-Klassen-Pfad-Problem mit Datei-Eigenschaften
Habe ich eine batch-Datei zum setzen von class-path, der vor dem Aufruf der java-main-Methode, siehe code unten
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
SET CLASSPATH=%CLASSPATH%;/resource
java -classpath %CLASSPATH% com.xyz.main
wenn ich meine Eigenschaften-Datei in den resource-Ordner funktioniert es einwandfrei, aber wenn ich es im root-Ordner funktioniert es nicht.
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
java -classpath %CLASSPATH% com.xyz.main
oben "class path" Einstellung nicht arbeiten, bin immer null-Zeiger-Ausnahme
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
SET CLASSPATH=%CLASSPATH%;/
java -classpath %CLASSPATH% com.xyz.main
oben "class path" Einstellung nicht arbeiten, bin immer die gleiche null-Zeiger-Ausnahme.
Bin mit java util Eigenschaften als unten.
InputStream inputStream = this.getClass().getResourceAsStream("/abc.properties");
getProperties().load(inputStream);
es wird wirklich schön wenn mir jemand helfen kann finden, warum dies geschieht. vielen Dank im Voraus.
InformationsquelleAutor Radan | 2013-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Komplette Klasse Pfad
java -classpath .;%CLASSPATH% com.xyz.main
können Sie auch mehrere Spezifikationen Beziehen sich die unten stehenden link,
http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/classpath.html
InformationsquelleAutor user1874565
Call
getResourceAsStream()
Ursachen java zu suchen, ein Mittel zur Verfügung, für die aktuellen class-loader, also eine, die gefunden werden können, die in Ihrer Klasse Weg. Wenn Sie möchten, Lesen Sie die Datei aus dem Datei-system verwendennew
new FileInputStream("abc".Eigenschaften")` statt. Wenn Sie weiterhin Lesen wollen-Datei aus der Ressource, die Sie müssen in den classpath entweder in Ihre jar-Dateien oder als separater Eintrag.Können Sie auch Logik implementieren, liest die Datei von der Klasse Weg und setzt dann die Werte mit Datei gefunden in der Datei system.
BTW werfen Sie einen Blick auf jackarata Konfiguration - Paket, das hat diese Funktion eingebaut.
InformationsquelleAutor AlexR
Müssen Sie include "./" in Ihren KLASSENPFAD ein. Sie sind effektiv erzählt die JVM ausschließen.
InformationsquelleAutor CodeChimp
Dies ist, weil der classpath überprüft werden aus dem aktuellen Verzeichnis
.
würde das beste tunAuch wenn Sie nicht Ihre properties-Datei in den resource Ordner und starten Sie das java-Programm wie erwähnt unten wird es perfekt funktionieren
HINWEIS: cp ist die Abkürzung für classpath
InformationsquelleAutor asifsid88