我在使用Java制作的游戏中导出jar的问题。游戏将于明天发布,jar将无法执行。
我正在运行命令java -jar filename.jar
以下是cmd提示符中堆栈跟踪的一部分:
Image load failed: Resources/Images/shop/jet.png
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at ImageLoader.loadImage(ImageLoader.java:21)
at ImageLoader.loadScaledImage(ImageLoader.java:34)
at ImgButton.<init>(ImgButton.java:18)
at Carnies.createButtons(Carnies.java:343)
at Carnies.simpleInitialize(Carnies.java:82)
at Frame.<init>(Frame.java:90)
at Carnies.<init>(Carnies.java:64)
at CarnieRunner.makeGUI(CarnieRunner.java:62)
at CarnieRunner.<init>(CarnieRunner.java:27)
at CarnieRunner.main(CarnieRunner.java:131)
Exception in thread "main" java.lang.ExceptionInInitializerError
at Carnies.createButtons(Carnies.java:361)
at Carnies.simpleInitialize(Carnies.java:82)
at Frame.<init>(Frame.java:90)
at Carnies.<init>(Carnies.java:64)
at CarnieRunner.makeGUI(CarnieRunner.java:62)
at CarnieRunner.<init>(CarnieRunner.java:27)
at CarnieRunner.main(CarnieRunner.java:131)
Caused by: java.lang.NullPointerException
at GifHandler.<init>(GifHandler.java:15)
at GifHandler.<clinit>(GifHandler.java:7)
... 7 more
问题是我的图片没有加载。这是程序中处理图像加载的行:
public static BufferedImage loadImage(String fileName) {
try {
File file;
file = new File(fileName);
BufferedImage sub = ImageIO.read(file);
return toCompatibleImage(sub);
}
catch (IOException e) {
System.out.println("Image load failed: " +fileName);
e.printStackTrace();
return null;
}
}
这一切在日食中都很漂亮但在Jar上没有运气。任何建议都会很精彩。如果拥有我的整个项目将帮助解决它在公共位于github.com/madamsmall/carnie的公共位置 谢谢!
答案 0 :(得分:0)
jar文件中的图片不再是File
,您需要更改代码to read it as resource from classpath
答案 1 :(得分:0)
您能否查看.jar文件,查看该位置是否存在&#34;资源/图像/商店/&#34;如果文件正确打包?
我唯一一次看到这种行为的时候是POM文件(Maven)上的包指令不正确。
感谢。
我的坏,完全错过了,答案是正确的是一种资源。