所以我已经尝试过各种各样的解决getResourceAsStream()方法,在堆栈交换上解决这个问题,大多数人说使用方法,我已经完成了.这是Jar的资源输入方法.
import java.io.InputStream;
public class ResourceLoader {
public static InputStream load(String path){
InputStream input = ResourceLoader.class.getResourceAsStream(path);
if(input == null){
input = ResourceLoader.class.getResourceAsStream("/" + path);
}
return input;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的ImageLoader课堂上使用它.
public class ImageLoader {
public BufferedImage load(String path){
try {
// return ImageIO.read(getClass().getResource(path));
return ImageIO.read(ResourceLoader.load(path));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
并使用将图像加载到主程序中
ImageLoader loader = new ImageLoader();
spriteSheet = loader.load("/spritesheet.png");
Run Code Online (Sandbox Code Playgroud)
现在在日食中游戏运行并加载所有图像完全正常.但我想要做的是将它导出到Jar,我已经使用一些教程完成了,并成功将其导出到包含我使用的图像的资源文件夹.但是,当我尝试运行.jar文件时,此错误会在cmd行中弹出.
Exception in thread "Thread-2" java,lang.IllegalArgumentException: input == null
!
at …Run Code Online (Sandbox Code Playgroud)