仅当我在 cmd 中运行 .jar 文件时,ImageIO 才会抛出异常

问题描述

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import java.util.Random;

public class ImageLoader {

    private final String fileLocal = System.getProperty("user.dir");
    private int NumberOfImage;
    public BufferedImage loadedImage;

    public ImageLoader(int level){
        NumberOfImage = level;
        try {
            Random random = new Random();
            int n = random.nextInt(level)+1;
            loadedImage = ImageIO.read(new File(fileLocal+"\\src\\level\\"+n+".png"));
            loadedImage = getScaleImage(loadedImage);
            //loadedImage = loadedImage.getScaledInstance(loadedImage.getWidth()/10,loadedImage.getHeight()/10,Image.SCALE_SMOOTH);
        } catch (IOException e) {
            e.printStackTrace();
        }
    

这是我的代码的一部分,用于加载我的图像以进行随机排序(我的项目是益智游戏)

我的问题是:

  • 我的游戏在eclipse IDE中运行正常,然后我制作了一个可执行的jar文件但我无法打开它(它立即打开并关闭)

  • 所以我在 cmd 中运行它,这就是问题所在: enter image description here

    Microsoft Windows [版本 10.0.19042.1110] (c) 微软公司。保留所有权利。

    C:\Users\WELCOME>java -jar Desktop\puzzle.jar javax.imageio.IIOException:无法读取输入文件! 在 java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308) 在 level.ImageLoader.(ImageLoader.java:22) 在 GUI.boardgui.(boardgui.java:27) 在 GUI.Game.(Game.java:12) 在 GUI.Main.main(Main.java:7) 线程“main”中的异常 java.lang.ExceptionInInitializerError 在 GUI.Main.main(Main.java:7) 引起:java.lang.NullPointerException:无法调用“java.awt.image.BufferedImage.getWidth()”,因为“this.loadedImage”为空 在 level.ImageLoader.GetSetOfImage(ImageLoader.java:66) 在 GUI.boardgui.(boardgui.java:28) 在 GUI.Game.(Game.java:12) ... 1个

    C:\用户\欢迎>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)