Jar文件执行错误Java / Eclipse

时间:2014-03-30 02:26:08

标签: java eclipse jar resources

我在使用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的公共位置 谢谢!

2 个答案:

答案 0 :(得分:0)

jar文件中的图片不再是File,您需要更改代码to read it as resource from classpath

答案 1 :(得分:0)

您能否查看.jar​​文件,查看该位置是否存在&#34;资源/图像/商店/&#34;如果文件正确打包?

我唯一一次看到这种行为的时候是POM文件(Maven)上的包指令不正确。

感谢。

我的坏,完全错过了,答案是正确的是一种资源。