gpt4 book ai didi

java - 运行 Jar 时的当前工作目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:54 24 4
gpt4 key购买 nike

我创建了一个可运行的 jar 应用程序(使用 maven-assembly 插件),在同一目录中有几个用户可配置的资源(图像、属性等)

当使用 java -jar ... 从命令行运行 jar 时,当前目录如您所料。问题在于,在某些操作系统(Ubuntu 11.04)上,如果通过简单地双击 jar 启动应用程序,那么当前工作目录就是主目录。

是否有一种获取 jar 所在的当前目录的首选方法,或者是否有另一种完全访问 jar 旁边的外部资源的方法?

最佳答案

您可以使用 MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath() 获取 jarfile 的位置。

另一种选择是将其他只读资源与相关类一起打包到您的 jar 文件中,以便您可以使用 Class.getResource(String)Class.getResourceAsStream(String)获取与给定类相关的资源。

例如,您可能有一个类 com.example.icons.Icons,图标将与 Icons.class 一起打包在 com/example/myapp/icons/ 路径。假设您的“打开”按钮使用名为 open.png 的图标:

ImageIcon icon = new ImageIcon(Icons.getResource("open.png"));

关于java - 运行 Jar 时的当前工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com