我使用几个类的IntelijIDEA编译了.jar文件。该项目 结构是这样的:
src -> .class;
res -> buttons -> Draw.png
当我从IDEA运行这个项目时,它运行正常。但是,当我运行编译的.jar文件时,它不会。
我认为问题在于找到我的Draw.png
文件。其中一个类使用以下代码行:
String startButtonHover1 = Draw.png;
BufferedImage startButton = ImageIO.read(this.getClass().getResource("buttons\\" + startButtonHover1));
如果我通过cmd运行.jar文件,它会报告ImageIO.read中的错误:input == null!
如何解决? 也许在构建jar文件之前必须更改一些IntelijIDEA的配置,但我没有这样做。
我也测试了这些线:
System.out.println(Main.class.getResource("buttons\\" + startButtonHover1));
System.out.println(Main.class.getResource("\\buttons\\" + startButtonHover1));
System.out.println(Main.class.getResource("res\\buttons\\" + startButtonHover1));
System.out.println(Main.class.getResource("..\\res\\buttons\\" + startButtonHover1));
System.out.println(Main.class.getResource(".\\res\\buttons\\" + startButtonHover1));
当我从InteijIDEA运行代码时,所有这些都会生成null,而前两个会提供适当的输出。
任何建议都将受到赞赏。