Jar文件没有(图片加载相关问题)

时间:2013-09-18 18:46:37

标签: java image netbeans jar

我正在为学校项目的加载屏幕工作。在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));
}

1 个答案:

答案 0 :(得分:3)

根据Class#getResource(String)

  

在委托之前,从中构造绝对资源名称   使用此算法给定资源名称:

     

如果名称以'/'('\ u002f')开头,则绝对名称为   资源是'/'后面的名称部分。

     

否则,   绝对名称的格式如下:modified_pa​​ckage_name / name   其中modified_pa​​ckage_name是此对象的包名称   用'/'代替'。' ( '\ u002e')。

../毫无意义,因为它会解析为资源名称

com/yourclasspackage/../resources/linen.png

我建议您始终在资源路径中使用绝对路径,即。以/开头的路径。在你的情况下,

LoadingScreen.class.getResource("/resources/linen.png"));

假设/resources/linen.png位于类路径的根目录。