我正在尝试为java游戏制作背景。代码:
bg = new ImageIcon("src/sprites/bg.png").getImage();
在我开发时工作正常,但是一旦打包成jar,它似乎无法工作。此外,如果它有帮助,我正在使用eclipse。
答案 0 :(得分:3)
要从同一个jar中的图像文件创建ImageIcon
,您的代码将被加载:
bg = new ImageIcon(getClass().getResource("/sprites/bg.png")).getImage();
然后将您的图像文件放在您的classes目录而不是" src"目录(例如"类/精灵"在您的情况下)。
答案 1 :(得分:0)
要从类路径中读取任何资源,您需要提供相对于JAR的路径,以" /"开头。例如,让你有jar" test.jar"并且你在com.test.package.Testing.class中有任何类,所以要把这个类作为资源你需要使用路径
"/com/test/package.Testing.class"
您始终可以将资源作为流加载到JVM中。例如,您已将图像文件捆绑在类路径中的jar中。
首先使用
获取图像文件的输入流作为资源Inputstream is = AnyClassWhichIsInSamejar.class.getClass().getResourceAsStream("/sprites/bg.png");
或
的getClass()的getResourceAsStream(" /sprites/bg.png");
现在在ImageIcon对象中转换此输入流