java.lang.RuntimeException : Resource not found?

标签 java resources lwjgl runtimeexception slick2d

我不明白为什么会收到此错误:java.lang.RuntimeException:找不到资源我正在尝试使用以下命令制作一个简单的 2d 游戏Slick 和 LWJGL 库,我遵循了这个指南 http://www.youtube.com/playlist?list=PLaNw_AbDFccGkU5gnFYquQ0PNQPmmD-Q7 并且我自己设法制作了更多。

问题是,即使图像确实存在于指定位置,我也会收到此错误。游戏运行完全正常,然后突然退出并出现我已经提到的错误。

错误:

Wed Nov 27 14:43:46 PST 2013 ERROR:Resource not found:
/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png
java.lang.RuntimeException: Resource not found:
/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png
    at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69)
    at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:273)
    at org.newdawn.slick.Image.<init>(Image.java:270)
    at org.newdawn.slick.Image.<init>(Image.java:244)
    at org.newdawn.slick.Image.<init>(Image.java:232)
    at org.newdawn.slick.Image.<init>(Image.java:198)
    at tomtam.game.object.BlockGreen.render(BlockGreen.java:18)
    at tomtam.game.main.World.render(World.java:447)
    at tomtam.game.state.PlayState.render(PlayState.java:76)
    at org.newdawn.slick.state.StateBasedGame.render(StateBasedGame.java:207)
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:703)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361)
    at tomtam.game.main.Main.main(Main.java:36)
Wed Nov 27 14:43:46 PST 2013 ERROR:Game.render() failure - check the game code.
org.newdawn.slick.SlickException: Game.render() failure - check the game code.
    at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:706)
    at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361)
    at tomtam.game.main.Main.main(Main.java:36)

所以错误指向这部分代码(图片):

public void render(GameContainer gc, Graphics g) throws SlickException
{
    super.render(gc, g);
    image = new Image("/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png");
}

我不是一个熟练的程序员,但我猜这个错误是因为图像不断渲染,即使它的位置或其他信息没有改变。这可能会产生一些滞后尖峰,对吧..?所以,我尝试将其更改为:

try 
{ 
    image = new Image("/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png"); 
} 
catch (RuntimeException npe) 
{ 
}

我知道这样做是一件坏事,但是,这样我就不会收到任何错误,并且在一段时间内一切正常。一段时间后,一些图像开始闪烁,我等待的时间越长,它们出现的时间就越少,直到最终消失。

代码有点长,不过我可以贴出来,问一下。任何帮助将不胜感激。

最佳答案

通常,当您的资源(现在是图像)不在 CLASSPATH 中时,会出现“java.lang.RuntimeException:找不到资源”,通常这是一个类路径问题。

This也可能对你有帮助。

关于java.lang.RuntimeException : Resource not found?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254880/

相关文章:

maven - 如何让 maven 从/src/test/resources 而不是/src/main/resources 获取依赖项目的资源?

Mac 上的 Java App 每次都要求允许网络连接

java - 解析 JSON 数据时不显示任何内容

java - 避免同时执行两次 Spring @Async 任务

Java try finally 变体

java - 为什么同一目录中的一个java类无法找到资源,而其他类却可以?

java - 仅调用 Override 类的 super 方法

java - OpenGL异常 : Cannot use offsets when Array Buffer Object is disabled. 。调用 glEnable(GL_ARRAY_BUFFER) 后在一行上?

opengl - Macbook Pro 上的 glFrustum 给出了意想不到的结果

java - Forge MDK runClient 崩溃,可能是由于 LWJGL。我该如何修复它?