我知道系统属性“user.dir”返回当前工作目录;包含当前正在运行的文件的目录。
我在想,怎样才能更进一步呢?我需要找到当前工作的文件。我正在编写一个有点像自动更新程序的小应用程序,我需要知道需要更新的文件。例如,如果我从 C:/test.jar 运行一个文件,我想在代码中实际知道正在运行的文件的当前位置是 C:/test。 jar 以便我可以向其中写入(新)数据。
我试过这样的方法:
ClassLoader loader = Test.class.getClassLoader();
System.out.println(loader.getResource("Test.class"));
然而,它打印出:
3/5/12 7:50:16.914 PM [0x0-0x31031].com.apple.JarLauncher: rsrc:Test.class
(我在 Mac 上运行它 - 我从控制台得到了那一行)。 任何帮助是极大的赞赏。谢谢!
最佳答案
归功于 Fab在以下帖子中: Jar path+name from currently running jar
String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
关于Java:找到当前工作的 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576894/