想要改进这篇文章? 提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。
我的代码在一个 JAR 文件中运行,比如 foo.jar ,我需要在代码中知道正在运行的 foo.jar 位于哪个文件夹中。
因此,如果 foo.jar 在 中C:\FOO\,无论我当前的工作目录是什么,我都想获取该路径。
C:\FOO\
return new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation() .toURI()).getPath();
将“MyClass”替换为您的班级名称。
显然,如果您的类是从非文件位置加载的,这会做一些奇怪的事情。