IntelliJ IDEA:在IDE外部运行时,Jar不会加载图像

时间:2017-02-11 20:45:35

标签: java intellij-idea jar executable-jar jetbrains-ide

我正在使用JetBrains IntelliJ IDEA IDE。这是我用来生成jar文件的。从IDE运行jar文件,一切看起来都很好。

从终端运行jar,没有加载任何图像。

我的感觉是,从阅读本文来看,这与图像的相对路径有关......但我无法弄清楚这一点。我尝试过在JetBrains论坛和StackOverflow上建议的各种不同的项目文件夹结构,但无济于事。一切都很好,直到我在IDE外面运行一个jar。

我目前的项目结构:

enter image description here

我在地球上如何创建一个适用于所有地方的jar文件?

3 个答案:

答案 0 :(得分:1)

使用IntelliJ的资源文件夹可能是正确的方法。

只需右键点击res文件夹,转到Mark Directory As并选择Resources

enter image description here

然后您只需按名称访问此文件夹中的文件(不带res/前缀。)

工作视觉示例:

enter image description here

答案 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