【问题标题】:(IntelliJ) Maven adds png resource to jar, but doesn't use it(IntelliJ) Maven 将 png 资源添加到 jar,但不使用它
【发布时间】:2016-08-27 17:06:04
【问题描述】:

我有一个相当简单的 Java 程序,结构如下:

/src/main/java/  (all the classes in here)
/src/main/resources  (marked as resource root in IntelliJ, one png file in here)
/pom.xml

我构建 Maven 项目的方式是一种解决方法(因为我无法让 IntelliJ 的工件系统工作)。我有一个运行/调试配置,它使用命令行构建项目:install(希望我解释得足够好)。

一切正常,除了包含.png 文件。 奇怪的是该文件实际上被添加到可执行文件jar 中,但不知何故最终程序似乎根本没有使用它。它通过以下方式访问:

BufferedImage image = ImageIO.read(new File(getClass().getResource(url).toURI()));

同样,最终程序运行良好,只是图像在任何时候都不可见。有什么帮助吗?

编辑:png 位于jar 的根文件夹中,提供的 URL 是一个字符串,它只是 png 文件的名称。我应该补充一点,该程序在 IntelliJ-Run-environment(包括 png)中运行良好,但不使用可执行文件 jar

【问题讨论】:

  • 罐子在哪里? url 提供的值是多少?
  • 我相应地编辑了原帖。

标签: java maven intellij-idea jar resources


【解决方案1】:

在这里找到对我有用的答案: Access .png image in .jar file and use it

不得不用

img = ImageIO.read(MapObject.class.getResource(url));

而不是

ImageIO.read(new File(getClass().getResource(url).toURI()));

因为图像位于jar

【讨论】:

  • 啊!是 toURI() 把事情搞砸了。一般getResourceAsStream() 会避免这样的问题。
猜你喜欢
  • 2018-09-23
  • 2018-11-18
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 2021-01-15
  • 2015-04-15
  • 1970-01-01
  • 2013-09-14
相关资源
最近更新 更多