【问题标题】:Jar file execution errors Java / EclipseJar 文件执行错误 Java/Eclipse
【发布时间】:2014-05-09 11:48:48
【问题描述】:

我在使用 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;
        }
    }

这一切在 Eclipse 中运行良好,但在 Jar 上没有运气。任何建议都会很棒。如果拥有我的整个项目将有助于解决它位于 github.com/madamsmall/carnie 的公开位置 谢谢!

【问题讨论】:

标签: java eclipse jar resources


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    能否请您查看 .jar 文件的内部,看看此位置是否存在“Resources/Images/shop/”以及该文件是否被正确打包?

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

    谢谢。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多