2013-02-10 83 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

你不能,你不应该能够。以多线程为例。您只能使您的应用程序对电流路径不敏感。

相关问题