如何在.jar中使用纹理?

时间:2015-07-02 19:35:32

标签: java eclipse opengl lwjgl

我正在使用LWJGL和Slick-Util。我的纹理加载在Eclipse中运行良好,但是当我将它导出到.jar时,它会给出java.lang.RuntimeException:找不到资源:res / test / texture.png

这是我的纹理加载代码:

public int loadTexture(String file) {
    Texture tex = null;
    try {
        tex = TextureLoader.getTexture("PNG", new FileInputStream("res/" + file + ".png"));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    int texID = tex.getTextureID();
    textures.add(texID);
    return texID;
}

2 个答案:

答案 0 :(得分:0)

您可能无法从正确的目录运行该应用程序。要使代码生效,您需要在包含res文件夹的目录中启动该程序。

或者你可以使用

...
try {
    tex = TextureLoader.getTexture("PNG", this.getClass().getResourceAsStream("/res/" + file + ".png");
} catch (FileNotFoundException e) {
     ...
}

但是在这种情况下需要将res文件夹添加到classpath:

java -cp .;path/to/res;some.jar your.main.Class

答案 1 :(得分:0)

使用OctoArcher摆脱getResource()/ getResourceAsStream()