我创建了一个显示图片的Java程序,它在Eclipse中完美运行,但是当我将它导出到.jar文件时,它不会显示图片。我刚开始学习Java,我没有创建Jar文件和使用jar文件中的文件的经验。
继承我的代码:
import javax.swing.*;
class displayPicture{
public static void main(String args[]){
JFrame frame = new JFrame();
ImageIcon icon = new ImageIcon("src/img.gif");
JLabel label = new JLabel(icon);
//Create the frame
frame.add(label);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
它显示了我在Eclipse中运行时的图片,但是当我将它导出到.jar文件时,它只显示一个空白窗口。
答案 0 :(得分:3)
两件事......
<强>第一强>
构建代码后,路径src
不太可能存在
<强>第二强>
ImageIcon(String)
假设String
引用是对文件系统上文件的引用。存储在应用程序上下文中的资源不是文件,而是以不同方式处理。它们通常被称为嵌入式资源。
相反,请尝试使用ImageIcon icon = new ImageIcon(displayPicture.class.getResource("img.gif"));
或ImageIcon icon = new ImageIcon(displayPicture.class.getResource("/img.gif"));
我更喜欢使用ImageIO.read
,因为当出现问题并支持更多文件格式时会抛出IOException
。
有关详细信息,请参阅Reading/Loading an Image。
您还应该花时间阅读Code Conventions for the Java Programming Language和Initial Threads