Hi,
Habe gerade ein Problem mit dem Öffnen einer Datei :shock:
Habe jetzt schon alles mögliche ausprobiert, aber es irgendwie nicht hingekriegt -.-
Und zwar geht es um folgendes:
Ich rufe folgende Methode auf:
Und die Methode sieht folgendermaßen aus:
Wenn ich das jetzt aus Eclipse ausrufe, funktioniert es einwandfrei, wenn ich jetzt aber die Datei als jar exportiere und die jar aus dem gleichen Verzeichnis, wo auch die .jar liegt, aufrufe, funktioniert es auch noch.
Wenn ich jetzt aber die jar aus einem anderen Verzeichnis aufrufe, krieg ich einen Fehler. Ist ja auch klar, der versucht dann ja die Datei von dem Verzeichnis ausgehend zu finden.
Also hab ich den Pfad zur .jar ausgelesen und davor gehängt:
Funktioniert auch soweit, aber sobald ein Leerzeichen in dem Pfad irgendwo drin ist, gehts wieder nicht, da dass Leerzeichen durch %20 (oder so ähnlich ) ersetzt wird.
Was muss ich also ändern, damit die Datei IMMER gefunden wird?
Gruß,
Dennis
Habe gerade ein Problem mit dem Öffnen einer Datei :shock:
Habe jetzt schon alles mögliche ausprobiert, aber es irgendwie nicht hingekriegt -.-
Und zwar geht es um folgendes:
Ich rufe folgende Methode auf:
Code:
loadXML(path+"/bin/Walls.xml");
Und die Methode sieht folgendermaßen aus:
Code:
public void loadXML(String xmlFile) {
// Load XML
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(xmlFile);
}catch(Exception e) {
System.out.println(e.getMessage());
}
[Daten verarbeiten]
}
Wenn ich das jetzt aus Eclipse ausrufe, funktioniert es einwandfrei, wenn ich jetzt aber die Datei als jar exportiere und die jar aus dem gleichen Verzeichnis, wo auch die .jar liegt, aufrufe, funktioniert es auch noch.
Wenn ich jetzt aber die jar aus einem anderen Verzeichnis aufrufe, krieg ich einen Fehler. Ist ja auch klar, der versucht dann ja die Datei von dem Verzeichnis ausgehend zu finden.
Also hab ich den Pfad zur .jar ausgelesen und davor gehängt:
Code:
String path = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
path = path.substring(0,path.lastIndexOf("/"));
Funktioniert auch soweit, aber sobald ein Leerzeichen in dem Pfad irgendwo drin ist, gehts wieder nicht, da dass Leerzeichen durch %20 (oder so ähnlich ) ersetzt wird.
Was muss ich also ändern, damit die Datei IMMER gefunden wird?
Gruß,
Dennis