relativer Pfad in einem Runnable JAR file

Bitte aktiviere JavaScript!
Hallo Gemeinde,
wie setze ich den Pfad zu einem Verzeichnis innerhalb einer jar-Datei?
Das Verzeichnis liegt im gleichen Ordner wie die aufrufende Klasse.

Habe das Forum durchsucht, viel Dr. Google gefragt, aber nix.

Bitte um Hilfe o_O
 
Naja das hab ich schon (fast) alles gelesen, bin aber nicht zu einer Lösung gekommen.

Hier nochmal etwas ausführlicher:

ich definiere in der Klasse "Konstanten"
Code:
public static final String DEFAULT_PATH = "/projekt/Mediendateien";
danach soll die Klasse "IOVerwaltung" einen JTree aus dem Verzeichnis "Mediendateien" füllen.

12299

unter eclipse funktioniert es, aber in der jar nicht. Was mach da falsch?

VG Thomas
 
Eine JAR Datei ist kein Dateisystem, wie etwa der lokale "bin/" Ordner im "exploded"-Zustand in der Entwicklung unter Eclipse. Du kannst die Dateien im Classpath nicht (einfach) per File.list() unterhalb eines Pfades abfragen. Für sogenanntes "Classpath Scanning" benötigst du etwas elaboriertere Mechanismen, wie etwa, den Classpath aus einer System Property auslesen und dann identifizieren, welche Teile davon Jar Dateien sind, und dann mittels JarFile API durch die Jar-Einträge iterieren.
 
kümmer mich gerade nochmal um mihe7 Tipp.
Wenn Du die Inhalte eines Verzeichnisses im Jar anzeigen willst, funktioniert das nicht über getResource. Siehe dazu Kommentar von @httpdigest. Ich würde allerdings nicht dynamisch scannen, sondern einfach eine Dateiliste (als Datei) in der Jar speichern, die die Pfade (bezogen auf den Classpath) zu den Mediendateien und ggf. deren Metadaten enthalten.
 
@mrBrown

zuerst definire ich in der Klasse "Kostanten" einen String mit dem Pfad des Verzeichnis
Code:
public static final String DEFAULT_PATH = "..\\jav09c\\projekt\\Mediendateien";
dann weise ich diesen String in der Klasse "Main" in der main()-Methode einer Variablen zu und lasse den JTree einlesen
Code:
String filePath = Konstanten.DEFAULT_PATH;
...
if (filePath != null) {
            ioVerwaltung.baumEinlesen(topLevelKatalog, filePath);
} // Ende if
mein Workspace
Workspace.jpg

unter eclipse funktioniert alles wie gewollt, aber eben nicht in der jar-Version!

Da kommt der Beitrag von @httpdigest zu Hilfe.

der überfordert mich aber noch :oops:
in der Klaase java.util.Jar bin auf JarEntry gestossen...

wäre das ein Denkanstubser für mich?

VG Thomas
 
Das geht ja nicht :(
ich muss doch diese jar-Datei weitergeben, und da kenn ich doch den Classpath nicht.

Ich überdenk mir das ganze nochmal, vlt. bau ich das Projekt um...

Danke für alle Antworten!

VG Thomas
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben