Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jar文件不存在(图像加载相关问题)_Java_Image_Netbeans_Jar - Fatal编程技术网

Java Jar文件不存在(图像加载相关问题)

Java Jar文件不存在(图像加载相关问题),java,image,netbeans,jar,Java,Image,Netbeans,Jar,我正在为一个学校项目制作加载屏幕。在Netbeans中,代码运行良好,但当我创建可执行jar时,.jar文件不会执行 我认为这个问题与背景图像加载有关,因为当我从我的项目中删除这堆代码时。.jar文件将执行,但当我添加它以加载backgound映像时,.jar文件不会执行。我们将非常感谢您的帮助 private void loadBackground(){ try { backgroundImage = ImageIO.read( Load

我正在为一个学校项目制作加载屏幕。在Netbeans中,代码运行良好,但当我创建可执行jar时,.jar文件不会执行

我认为这个问题与背景图像加载有关,因为当我从我的项目中删除这堆代码时。.jar文件将执行,但当我添加它以加载backgound映像时,.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));
}

在委托之前,将根据 使用此算法的给定资源名称:

如果名称以“/”(“\u002f”)开头,则 资源是名称中“/”后面的部分

否则,, 绝对名称的形式如下:修改的\u包\u名称/名称 其中,修改的包名称是此对象的包名称 用“/”代替“.”(“\u002e”)

。/
没有意义,因为它将解析为资源名称

com/yourclasspackage/../resources/linen.png
我建议您在资源路径中始终使用绝对路径,即以
/
开头的路径。就你而言

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

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

使用
java-jar-yourApp.jar
从命令行启动jar,并查看是否触发任何异常。如果您看到异常,请将它们粘贴到此处,尝试不使用“./”,并确保您的图像存在于目录资源中的jar中。谢谢。通过从背景图像路径中删除“.”解决了此问题。LoadingScreen.class.getResource(“/resources/linen.png”);