【问题标题】:How to include images into an executable .jar? [duplicate]如何将图像包含到可执行的 .jar 中? [复制]
【发布时间】:2020-04-04 03:15:31
【问题描述】:

我正在尝试将图像直接放入打包的 JAR 可执行文件中。 目前显示图像的唯一方法是在 JAR 的同一目录中创建一个包含所有图像的目录。

有没有办法将图像直接打包到 JAR 中?

【问题讨论】:

  • 这能回答你的问题吗? Java Swing: Displaying images from within a Jar
  • 你是如何创建 JAR 的?大多数 IDE 允许您将“资源”复制到将自动包含在内的“源”位置。 Maven 使用“资源”目录 - 所以,答案是“是”,但“如何”更难回答
  • @wilddev 这将解释如何在运行时加载它们,但没有解释如何将它们包含在 Jar 中
  • 有视频如何在eclipse中添加图片资源youtube.com/watch?v=yksgU4SxoJY
  • @user840718 不,将它们放在现有的 src 节点中 - 请参阅链接的 Q/A

标签: java swing embedded-resource


【解决方案1】:

您可以将它们放在资源目录中。那么问题是它们在磁盘上不存在,您必须从 jar 中加载它们。我创建了一个 Util 类来加载图像并做一些其他事情。

Image image = ImageIO.read(UTILCLASS.class.getClassLoader().getResourceAsStream(path));  

其中路径只是文件的名称,或者如果有同名的文件,您可以提供父目录。

【讨论】:

  • “你可以把它们放在资源目录中” 将取决于构建系统。如果他们使用 maven(或者我相信 intellij),那么可以,但是如果他们使用其他 IDE 或其他构建系统,那么这不太可能工作
  • 问题是图像在 jar 中,无法以他习惯的方式访问。通过文件系统上的路径。他不需要帮助就可以获取 jar 中的文件。他需要帮助使用 jar 中文件的字节。谢谢@Ma
  • “我正在尝试将图像直接放入打包的 JAR 可执行文件中” 询问“如何嵌入图像”,而不是“如何加载它们”。是的,您需要使用 getResourcegetResourceAsStream 来加载它们,但 OP 甚至还没有达到这一点
猜你喜欢
  • 2012-09-11
  • 2014-10-05
  • 2015-03-02
  • 2017-08-08
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
相关资源
最近更新 更多