我正在使用JetBrains IntelliJ IDEA IDE。这是我用来生成jar文件的。从IDE运行jar文件,一切看起来都很好。
从终端运行jar,没有加载任何图像。
我的感觉是,从阅读本文来看,这与图像的相对路径有关......但我无法弄清楚这一点。我尝试过在JetBrains论坛和StackOverflow上建议的各种不同的项目文件夹结构,但无济于事。一切都很好,直到我在IDE外面运行一个jar。
我目前的项目结构:
我在地球上如何创建一个适用于所有地方的jar文件?
答案 0 :(得分:1)
使用IntelliJ的资源文件夹可能是正确的方法。
只需右键点击res
文件夹,转到Mark Directory As
并选择Resources
。
然后您只需按名称访问此文件夹中的文件(不带res/
前缀。)
工作视觉示例:
答案 1 :(得分:1)
源和资源根的处理方式不同。
资源目录中的所有文件将始终复制到输出路径。正如另一个答案中所建议的,其中一个解决方案是configure this directory as Resources root。这是让它发挥作用的首选方式。
如果您希望将Source根目录中的文件复制到输出中,则必须specify the patterns查找要复制的文件。
如果项目基于Maven或Gradle,则这些模式无效,IDE将使用相应构建系统的规则来处理资源。
答案 2 :(得分:0)
好的,这就是对我有用的东西。我打开了项目结构窗口(Ctrl-Alt-Shift + S
)并转到模块选项卡。从那里,我可以轻松地从列表中选择一个文件夹,然后单击以使其成为资源目录。然后,我可以使用
URL
的资源
URL imageUrl = ClassLoader.getSystemResource("image.png")
无需使用图片的路径,只需要实际 name.ext