我无法理解的小Java异常

时间:2013-04-20 09:27:01

标签: java exception jmonkeyengine

你能帮我解决这个问题吗?

Exception in thread "main" com.jme3.asset.AssetNotFoundException: Interface/splash.png
    at com.jme3.system.JmeDesktopSystem.showSettingsDialog(JmeDesktopSystem.java:112)
    at com.jme3.system.JmeSystem.showSettingsDialog(JmeSystem.java:128)
    at com.jme3.app.SimpleApplication.start(SimpleApplication.java:125)
    at adventure.Q3World.main(Q3World.java:85)

它曾经工作,然后我不得不重新包装所有东西,现在我可能已经忘记了Eclipse中的设置或类似设置。启动文件在那里,但它不在某个路径上。

我想要的是这个,它在我之前的版本中有效:

settings.setSettingsDialogImage("Interface/splash.png");

我也尝试过添加资源面板的路径,但没有其他效果:

enter image description here

在Java构建路径中,列出了资源,但它仍然无效:

enter image description here

我想要工作的更大的代码块以及在内置jar中工作但不在eclipse juno中工作的代码块是:

public static void main(String[] args) {

        File file = new File("quake3level.zip");
        if (!file.exists()) {
            useHttp = true;
        }
        Q3World app = new Q3World();
        AppSettings settings = new AppSettings(true);
        settings.setTitle("Dungeon World");
        settings.setSettingsDialogImage("Interface/splash.png");
        app.setSettings(settings);

        app.start();
    }

成功

enter image description here

1 个答案:

答案 0 :(得分:1)

您能告诉我们您如何运行代码(例如命令行,如果是这样,什么是类路径),以及splash.png的所有位置在您的文件夹结构中的位置?

该文件需要位于类路径中,因为它似乎是此代码加载图像的位置。

http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/desktop/com/jme3/system/JmeDesktopSystem.java?spec=svn10038&r=10038#112

    String iconPath = sourceSettings.getSettingsDialogImage();        
    if(iconPath == null){
        iconPath = "";
    }
    final URL iconUrl = JmeSystem.class.getResource(iconPath.startsWith("/") ? iconPath : "/" + iconPath);
    if (iconUrl == null) {
        // *****LINE 112 below*****
        throw new AssetNotFoundException(sourceSettings.getSettingsDialogImage());
    }