2013-02-10 108 views
1

我寫了一個簡單的Java應用程序,比方說,用下面的代碼:如何爲Java應用程序設置工作目錄?

String currentDir = new java.io.File(".").getCanonicalPath(); 
javax.swing.JOptionPane.showMessageDialog(null, currentDir); //This line shows a graphical dialog with the current dir 

當我通過終端運行它,它給了我這裏的jar文件所在的目錄。但是當我使用GUI文件管理器(即,右鍵單擊jar文件 - > Open With - > OpenJDK Java 7 Runtime)運行它時,工作目錄是我的用戶主目錄(/ home/angstrem)。如何將工作目錄設置爲jar文件所在的目錄?

回答

1

你可以這樣做:

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

在你的JAR定義的實際類取代YourClass

然後,您可以使您的文件路徑相對於jarPath,並且無論其工作目錄如何,您的程序都可以工作。

+0

我真的不明白,爲什麼它的工作,但它:)謝謝。 – Angstrem 2013-02-10 23:20:58

0

你不能,你不應該能夠。以多線程爲例。您只能使您的應用程序對電流路徑不敏感。

相關問題