java - 压缩为 jar 时无法读取输入文件

标签 java

当出现此错误时,我正在尝试在终端中运行 jar 文件:

enter image description here

我可以在我的 IDE 中正常运行这个文件,但是当我将项目导出为 jar 时,它找不到该文件。这是错误指向的代码:

BufferedImage buttonIcon = ImageIO.read(new File("img/button.png"));
button = new JButton(new ImageIcon(buttonIcon));

最佳答案

有两个问题。

  1. 您需要将文件放入 jar 中。
  2. 您需要使用 getResourceAsStream(...) 来使用类加载器从 jar 中加载。

要验证 jar 文件中是否存在图像,请使用命令 jar -tf jarfile.jar 并查看 button.png 是否在 jar 中,它在哪里预期的。如果不是,请考虑更改您的 jar 包装。

至于 getResourceAsStream(...) 已经有很多人提供了如何正确执行此操作的方法。看看他们的答案。

关于java - 压缩为 jar 时无法读取输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25028913/

相关文章:

java - 向 APNS 发送推送通知(AdHoc 部署)

java - 从多个方法向 Arraylist 添加元素的正确方法是什么?

java - 在 Java 中使用 Subversion,性能非常重要

java - 如何通过遗留映射在 Hibernate 5 中指定基于序列的生成值

java - Android更改错误验证文本字段的颜色

java - 从android中的 ListView 获取选定的复选框文本的结构?

java - 当用作另一个对象的成员变量时如何设置和检索 ArrayList

java - 在 spring 中将正则表达式设置为属性值

java - Hibernate工具可以生成JPA POJO吗?

java - Mockito:验证any()参数是否相同