如何获取正在运行的 JAR 文件的路径?
2022-08-31 04:13:13
我的代码在 JAR 文件中运行,比如说 foo.jar,我需要知道,在代码中,正在运行的 foo.jar在哪个文件夹中。
因此,如果 foo.jar 在 中,无论我当前的工作目录是什么,我都希望获取该路径。C:\FOO\
我的代码在 JAR 文件中运行,比如说 foo.jar,我需要知道,在代码中,正在运行的 foo.jar在哪个文件夹中。
因此,如果 foo.jar 在 中,无论我当前的工作目录是什么,我都希望获取该路径。C:\FOO\
return new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation()
.toURI()).getPath();
将“MyClass”替换为您的类的名称。
显然,如果您的类是从非文件位置加载的,这将做一些奇怪的事情。
最适合我的解决方案:
String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
这应该可以解决空格和特殊字符的问题。