我正在为学校项目的加载屏幕工作。在Netbeans中,代码运行正常,但是当我创建一个可执行jar时,.jar文件不会执行。
我认为这个问题与后台图片加载有关,因为我从项目中删除了这些代码。 .jar执行但是当我添加它以加载背景图像时,.jar文件不会执行。任何帮助将受到高度赞赏。
private void loadBackground(){
try {
backgroundImage = ImageIO.read(
LoadingScreen.class.getResource("../resources/linen.png"));
} catch (IOException ex) {
Logger.getLogger(LoadingScreen.class.getName()).log(Level.SEVERE, null, ex);
}
Background.setIcon(new ImageIcon(backgroundImage));
}
答案 0 :(得分:3)
在委托之前,从中构造绝对资源名称 使用此算法给定资源名称:
如果名称以'/'('\ u002f')开头,则绝对名称为 资源是'/'后面的名称部分。
否则, 绝对名称的格式如下:modified_package_name / name 其中modified_package_name是此对象的包名称 用'/'代替'。' ( '\ u002e')。
../
毫无意义,因为它会解析为资源名称
com/yourclasspackage/../resources/linen.png
我建议您始终在资源路径中使用绝对路径,即。以/
开头的路径。在你的情况下,
LoadingScreen.class.getResource("/resources/linen.png"));
假设/resources/linen.png
位于类路径的根目录。