Java Swing:从 jar 文件运行时不显示图像

问题描述 投票:0回答:2

Swing 应用程序及其图像在 Eclipse 中运行良好。但是当我从 jar 文件运行时,图像不显示。我尝试以不同的方式加载图像,但有时 jar 文件没有执行。

我的图像文件夹位于源文件夹内。

我加载我的图像:

1.在eclipse中运行良好,但在jar中则不行

ImageIcon right = new ImageIcon("./chack img/Green Tick 1.PNG");

2.在eclipse中运行正常,但jar文件不执行。

ImageIcon wrong = new javax.swing.ImageIcon(getClass().getResource("/chack img/Red Cross1.PNG"));

我也尝试了其他一些代码,但我的问题仍然没有解决。

java eclipse swing jar
2个回答
1
投票

将图像与类一起放入 src 文件夹中。可选,但制作一个存储图像的包。编译 jar 文件不会保留任何非源目录的目录。

此外,请删除文件夹和文件名中的所有空格。这可以防止混淆,并且可能是您问题的一部分。在编程以及大多数命名文件夹和文件的情况下,不使用空格是一个很好的做法。

此外,kiheru是正确的,文件扩展名中不应有大写字母,出于同样的原因,不应有空格;它可能会引起混乱,并且在大多数情况下这是一种不好的做法。

编辑:类似问题


0
投票
import javax.swing.JFrame ;
import javax.imageio.ImageIO ;
import java.io.IOException ;
import java.awt.image.BufferedImage ;

public class LoadImage extends JFrame {
    public LoadImage() {
        setSize(600, 600) ;
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
        BufferedImage image = null ;
        try {
            image = ImageIO.read(getClass().getResourceAsStream("/path/to/your/location.png"));
        } catch(IOException e) {
            e.printStackTrace();
        }
        if (image != null) {
            setIconImage(image) ;
        }    
        setLocationRelativeTo(null) ;
    }
    
    public static void main(String[] args) {
        new LoadImage().setVisible(true) ;
    }
}

ImageIO.read(getClass().getResourceAsStream("/Path/to/your/image")
这个方法可以帮助您将图像加载到jar中,将图像放入资源中,例如您的图像名称:“myImage.png或.jpg”,路径将如下所示:
"/myImage.png"

© www.soinside.com 2019 - 2024. All rights reserved.