当出现此错误时,我正在尝试在终端中运行 jar 文件:
我可以在我的 IDE 中正常运行这个文件,但是当我将项目导出为 jar 时,它找不到该文件。这是错误指向的代码:
BufferedImage buttonIcon = ImageIO.read(new File("img/button.png"));
button = new JButton(new ImageIcon(buttonIcon));
最佳答案
有两个问题。
- 您需要将文件放入 jar 中。
- 您需要使用
getResourceAsStream(...)
来使用类加载器从 jar 中加载。
要验证 jar 文件中是否存在图像,请使用命令 jar -tf jarfile.jar
并查看 button.png
是否在 jar 中,它在哪里预期的。如果不是,请考虑更改您的 jar 包装。
至于 getResourceAsStream(...)
已经有很多人提供了如何正确执行此操作的方法。看看他们的答案。
关于java - 压缩为 jar 时无法读取输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25028913/