Konfigurationsfile ausserhalb *.jar

  • Themenstarter Themenstarter snakedj
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

snakedj

Gast
Wie kann ich auf ein Konfigurationsfile (config.xml) ausserhalb des *.jar Files verlinken... so etwas wie ../config.xml bringt mir die Fehlermeldung FileNotFoundException

thx im voraus.

mfg
snakedj
 
Wenn dein jar z.B. in C:\Temp\ liegt, und deine config.xml auch dort, dann kannst du das einfach mit config.xml ansprechen.

Falls das widererwartend nicht klappt, lies
Code:
System.getProperties("java.class.path")
aus. Damit bekommst du den Pfad, wo sich dein jar-File befindet. Davon musst du dann aber noch den Namen des jar-Files abschneiden, dar sich der dann mit in der Variable befindet.
Dann kannst du den absoluten Pfad zur config.xml zusammensetzen.
 
wenn dir das eine FileNotFoundEx wirft ist der Pfad nicht korrekt.

liegt das file im selben verz wie das jar so reicht der einfache dateinamen. ansonsten musst du halt z.b. den unterordner angeben in dem es liegt...
 
Den aktuellen Pfad bekommst du auch mit:
Code:
String currentDir =  new File("").getAbsolutePath();
 
Besten Dank für die vielen Antworten.

@foobar Ich führe das Script per cmd aus, später per Taskplaner.. der aktuelle Pfad kann dann natürlich immer variabel sein... bsp. C😀okumente und Einstellungen, etc. Funzt dadurch leider nicht.

@deathbyaclown Diese Variante hatte ich mir erhofft, funzt jedoch nicht...

Code:
FileInputStream in = new FileInputStream("config.xml");
            System.getProperties().loadFromXML(in);

@Timmah Mit deiner Variante bekomme ich alle Parameter zurück welche ich dem Script übergebe beim ausführen. Ist daher auch nicht die optimale Lösung.

Trotzdem schon einmal big thx für die Hinweise.

Hat vielleicht sonst noch jemand eine Idee?

mfg
snakedj
 
So, wie das das implementierst, habe ich es doch auch gar nicht geschrieben...
Aber die Möglichkeit mit new File("").getAbsolutePath() macht dann ja dasselbe.
 
Also mit meiner Variante wirst du immer das aktuelle Verzeichnis ermitteln können, egal ob du das Programm über cmd startest oder nicht.
 
@foobar Richtig, aber das muss dann nicht unbedingt der Classpath sein, dadurch das Script ja von irgendwo aus gestartet werden kann.

Habe es jetzt mit einer Parameterübergabe gelöst. Danke nochmals für die Hinweise.

gruss
snakedj
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben