为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取正在运行的JAR文件的路径?

如何获取正在运行的JAR文件的路径?

如何获取正在运行的JAR文件的路径?我的代码在一个JAR文件中运行,比如说foo.jar,我需要在代码中知道运行foo.jar的文件夹。所以,如果foo.jar在C:\FOO\,我想要获得该路径,无论我当前的工作目录是什么。
查看完整描述

4 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

return new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation()
    .toURI()).getPath();

将“MyClass”替换为您班级的名称。

显然,如果您的类是从非文件位置加载的,那么这会很奇怪。


查看完整回答
反对 回复 2019-05-29
?
烙印99

TA贡献1829条经验 获得超13个赞

最适合我的解决方案:

String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();String decodedPath = URLDecoder.decode(path, "UTF-8");

这应该解决空格和特殊字符的问题。


查看完整回答
反对 回复 2019-05-29
?
Helenr

TA贡献1780条经验 获得超3个赞


您还可以使用:


CodeSource codeSource = YourMainClass.class.getProtectionDomain().getCodeSource();

File jarFile = new File(codeSource.getLocation().toURI().getPath());

String jarDir = jarFile.getParentFile().getPath();


查看完整回答
反对 回复 2019-05-29
  • 4 回答
  • 0 关注
  • 3947 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信