我一直在编写一个游戏,并且有一段时间我上了一门名为“资源”的类(class)。由于某种原因,当我几乎不对类(class)进行任何编辑时,它就会停止工作。这是我的资源类:
public class Resources {
public static final BufferedImage background = load("/background.png");
public static final BufferedImage introBackground = load("/introBackground.png");
public static final BufferedImage sneem = load("/sneem.png");
public static final BufferedImage grass = load("/grass.png");
public static final BufferedImage wall = load("/wall.png");
public static BufferedImage load(String path){
URL url = Resources.class.getResource(path);
try {
return ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
另外:我从头开始创建这个类,我没有使用任何库或类似的东西。
最佳答案
此消息....
“java.lang.NoClassDefFoundError: Could not initialize class me.ryan.Resources”
意味着您的Resources
类的静态初始化失败。异常消息没有说明原因,但堆栈跟踪可能会说......在嵌套异常链中。
发生失败的原因是您的一个 load
调用由于未捕获未检查异常而失败。
查看load
的代码我猜测该异常是NullPointerException
,并且它发生的原因是
Resources.class.getResource(path)
调用返回了 null
而不是 URL
对象。如果类加载器找不到路径名与您请求的资源相对应的资源,它将执行此操作。
如果出现这种情况,那么根本原因是您使用了错误的路径。或者您的构建/部署过程没有将所需的图像文件放置在类加载器期望的位置;例如如果您从可执行 JAR 运行,则在 JAR 文件中。
关于Java:由于 "java.lang.NoClassDefFoundError: Could not initialize class me.ryan.Resources",程序随机停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883470/