windows: relative pfade in java-programm

Status
Nicht offen für weitere Antworten.

Bastian

Bekanntes Mitglied
Verknüpfe ich z.b. textdateien mit meinem programm und klicke doppelt auf eine textdatei welche in einem ordner liegt, der sich von dem ordner in dem mein programm liegt unterscheidet, scheint windows mein programm in dem ordner der textdatei auszuführen. -> alle dateien auf die ich in meinem programm relativ drauf zugreife (wie z.b. die .props datei ) sind natürlich nicht verfügbar.
(frage bezieht sich konkret auf mein editor-projekt)

wie kann ich dies verhindern bzw. so regeln, dass mein programm immer noch die .props datei findet? das seltsame ist, dass mein programm, wird es in einem fremden ordner ausgeführt immer noch zugriff auf die in seinem unterverzeichnis befindliche klassenbiblio. hat. aber diese ist in der manifest datei auch beim CLASSPATH:... eingetragen.
also habe ich versucht, auch den ordner in dem die .props datei liegt in den claspath einzutragen. ->hat nichts gebracht.

jetzt gibt es zwei möglichkeiten, entweder ich habe den classpath in der manifestdatei falsch eingetragen:
Class-Path: editor/lib/printer.jar.;editor/.props
oder das problem liegt wo anders...
 
ich benutzte properties

EDIT: wobei ich eben kruz die preferences überfologen habe: kann es sein, dass ich dort gar kein pfad setzten muss?
aber wie auch immer, das mit den properties war jetzt so ein krampf, dass ich es erstmal mit denen eine lösung finden will
 
Jepp, die Preferences werden in den Systemeigenen Einstellungen abgespeichert.

Bei Linux ist dann unter .java im Home, bei Windows afaik in der Registry.

Ansonsten mal ein Schuss ins Blaue, du könntest deine properties File über getResourceAsStream laden, dann müssten die Pfade passen.
 
naja, gut wenns in der registry speichert, dann kommen preferences sowieso nicht in frage 😀 *absoluterfeinvonregistrybin*

aha, du meinst also über getResourceAsStream. ich mache es zurzeit über FileInputStream wo liegt da der unterschied?
 
hm, vermutlich mach ich doch was mim classpath in der manifest falsch, denn jetzt lese ich die properties datei über getResourceAsStream. allerdings funktioniert es nur noch, wenn ich von eclipse aus starte. hier meine manifest:

Manifest-Version: 1.0
Class-Path: editor/lib/printer.jar.;editor/
Sealed: true
Main-Class: Editor


was muss ich als classpath schreiben, dass mein programm auf die datei .props im ordner editor zugreifen kann??
 
gar nichts

eine Datei die irgendwo in deinem Jar liegt kannst du immer mit einem absoluten Pfad abholen, also mit

getRessourceAsStream("/editor/foo.properties")

laden (den Classpath in der Manifest brauchst du nur, wenn du andere Bibliotheken hast die sich ausserhalb des jars befinden)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben