我写了一个简单的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文件 - >打开方式 - > OpenJDK Java 7运行时)运行它时 - 工作目录是我的用户主目录(/ home / angstrem)。如何将工作目录设置为jar文件所在的目录?
答案 0 :(得分:1)
你可以这样做:
String jarPath = YourClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
将YourClass
替换为jar中定义的实际类。
然后,您可以使文件路径相对于jarPath
,无论其工作目录如何,您的程序都将正常工作。
答案 1 :(得分:0)
你不能,也不应该。例如,考虑多线程。您只能使应用程序对当前路径不敏感。