Resource Pfadangaben

BattleMaster246

Aktives Mitglied
Wenn ich in meinen Programm die Pfadangaben relativ zu der .jar Datei angebe, funktioniert das ganze unter Windows so wie es soll.

Doch unter Ubuntu geht das ganze nicht wenn ich java -jar "/home/x/Desktop/datei.jar" eingebe. Aber wenn ich mit cd in /home/x/Desktop gehe und dann java -jar "datei.jar" in die Konsole eingege, werden die Resourcen ganz normal geladen.

Warum ist das so und wie kann ich es so hinbekommen, damit es auch mit einem absoluten Pfad unter Ubuntu funktioniert.
 

kay73

Bekanntes Mitglied
So etwas wie eine "Pfadangabe relativ zum JAR-File" gibt es nicht. Ich nehme mal an, Du klickst unter Windows direkt auf eine JAR-Datei oder auf eine Verknüpfung einer solchen. Die "Pfadangaben" beziehen sich immer auf Arbeitsverzeichnis und Windows setzt das auf das gleiche wie die das, in dem die Verknüpfung liegt. Wenn Du die Anwendung mit
Code:
 java -jar "/home/x/Desktop/datei.jar
aufrufst, ist das Arbeitsverzeichnis eben "irgendwo" und der Effekt wäre unter Windows derselbe.

Wenn Du aus dem JAR-File "realtiv" auf eine Dateisystemressource zugreifen willst, musst Du einen absoluten Pfad zusammenbauen und dazu das Verzeichnis finden, in dem das JAR-File liegt. Und das ist hässlich: Der einzige Weg, den ich kenne, ist sich den ClassLoader des aufrufenden Objektes zu holen und mit getRessource() die URL der Bytes der Klasse in dem JAR-File geben zu lassen. Dazu musst Du den vollen Klassennamen mit Paket in den Dateinamen ".class" konvertieren. dann bekommst Du soetwas wie "jar!://...." zurück. Und darin steht der Pfad auf der Platte.
 
Zuletzt bearbeitet:

jonius

Aktives Mitglied
Eine einfache Möglichkeit, ein Javaprogramm so zu starten, dass das Arbeitsverzeichnis das Verzeichnis ist, indem auch die Jar liegt, ist folgende:

Du legst eine Skriptdatei mit der Endung "*.sh" an und darin schreibst du die zwei Zeilen:
Code:
cd /pfad/zum/verzeichnis
java -jar programm.jar

Das Skript dann einfach ausführen oder über den Befehl:
Code:
sh /pfad/zum/verzeichnis/skript.sh
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben