2009-09-09 48 views
2

在Linux中,JVM將工作direcory設置爲等於來自用戶的homefolder。 在Windows中,這是jar所在的文件夾。 如何找到罐子(來自我的應用程序)的位置以更改工作目錄?Java:Howto知道jar在Linux中的位置

的Martijn

+0

你問的是哪個jar文件?您的應用程序,Java API或第三方? – 2009-09-09 14:40:58

+0

從我的應用程序的jar – 2009-09-09 14:45:55

回答

5

嘗試獲得與該代碼的jar的路徑:

path=path.substring(0, path.lastIndexOf('/')+1); 

我有同樣的問題與Java:

String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); 

然後你可以刪除 「的* .jar」 部分遊戲當我需要打開一個文件在jar是相同的目錄。

雙擊linux中的jar沒有打開文件。當然你可以打開一個命令行並將dir改爲jar dir,然後從那裏運行jar,但我需要雙擊該jar。

0

在這兩種情況下,它是實際的目錄。如果您從資源管理器執行,實際目錄會自動設置爲jar的base-dir。在linux下,主目錄是GUI的實際目錄。要設置目錄,請編寫一個簡短的shell腳本,它用於設置實際目錄(使用cd命令),然後執行jar(使用javaw -jar xyz.jar)。