Siema próbuje pobrać ścieżkę do folderu z którego uruchamiam .jar System.getProperty("user.dir") sprawuje się dobrze na Windowsie a na Linuxie wariuje. Jak inaczej zwrócić taka ścieżkę?
Co znacz wariuje? Windows i linux maja inne sciezki, ale to pewnie jasne?
Jak inne sciezki? Skoro uruchamiam program w Windowsie z np. pulpitu i poprawnie pokazuje mi sciezke a jak uruchamiam w ubuntu np. w katalogu domowym to juz nie poprawnie.
Co znaczy 'niepoprawnie'? Ty chyba nie czaisz ze te sciezki sa inne? Nie rozumiem.
Ty chyba nie czaisz polskiego. Chce zwrócić folder z którego uruchamiam plik jar (moja aplikacja napisana w javie), domyślam się ze System.getProperty("user.dir") zwraca różne wartości na Windowsie (poprawnie) i na Linuxie (nie zawsze zwraca poprawnie folder z którego uruchamiam jar), wiec albo wiesz jak poprawnie na obu system zwrócić ten folder, albo zamilcz.
Takim tonem do mozesz mowic do twojej laski, ale nie tutaj.
Z dokumentacji Javy: "user.dir User's current working directory", a więc nie oznacza to folderu, z którego została odpalona aplikacja tylko aktualny folder roboczy.
Opis jak pobrać ścieżkę do JARa:
http://www.velocityreviews.com/forums/t619563-how-to-get-current-jar-path.html
A żeś strzelił z tym user.dir Na logikę to przecież nie to. Rozumiem jakby tam było working.dir albo coś.
Ja to robię tak:
String path= tuKlaska.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decoded= URLDecoder.decode(path, "UTF-8");
File fileOuttemp = new File(decoded);
sciezkaDoJara= fileOuttemp.getParentFile();
String path= tuKlaska.class.getProtectionDomain().getCodeSource().getLocation().getPath();
Rozumiem ze tam gdzie "tuKlaska" wstawiasz nazwę klasy w której masz kod?
No najlepiej to dać klasę startową i w ogóle umieścić ten kod w metodzie/ klasie startowej.
Ano zgadzam się. Klasę daj tą gdzie masz metodę main. Ja czasami w ogóle dawałem to do bloku statycznego klasy, ale jest dowolność. Dasz jakąkolwiek klasę z Twojej app i będzie działać.