导出可运行的 Jar 不使用 ImageIcon
Exporting Runnable Jar Not Working with ImageIcon
我在使用 运行 一个 运行 包含图像图标的可用 jar 文件时遇到问题。
在 eclipse 上很好地编码 运行s 并在 JFrame
中显示图标。我添加它的方法是将它添加到 JLabel
,然后将 JLabel
添加到 JFrame
。我将项目导出到 运行nable Jar 文件中,然后双击该 jar。它没有 运行.
我测试了只是在 JFrame
上添加一个正常的 JLabel
而没有图标代码,当我导出并 运行 它时它可以工作。
每当我在代码中添加以下行时,它都会弄乱 运行nable Jar 文件。
JLabel s1 = new JLabel(new ImageIcon(getClass().getResource("/Images/Pattern1.png")));
我注意到它在获取资源时可能有问题。我的 Image Pattern1 存储在名为 Images 的文件夹中,该文件夹位于我的项目 src 文件夹中。
所以当我导出它时,我确定它在 运行nable jar 文件中。
这是我的代码
package main;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame {
public MyFrame() {
JLabel s1 = new JLabel(new ImageIcon(getClass().getResource("/Images/Pattern1.png")));
this.add(s1);
//JLabel test = new JLabel("Test");
//this.add(test);
}
public static void main(String[] args) {
MyFrame f = new MyFrame();
f.pack();
f.setVisible(true);
}
}
这是我项目中的文件的样子。
谢谢
特别是 Windows,Java 可以放宽文件名中大小写的使用。当 运行 在 Eclipse 中时,Pattern1.PNG
可能是直接从文件系统中提取出来的。
然而,一旦嵌入到 Jar 中,大小写匹配就会变得精确。这是因为资源只是添加到 zip 文件中,Java 使用 Zip 条目信息来查找内容。
确保您的命名准确无误,以避免出现问题。尝试 /Images/Pattern1.PNG
而不是 /Images/Pattern1.png
我在使用 运行 一个 运行 包含图像图标的可用 jar 文件时遇到问题。
在 eclipse 上很好地编码 运行s 并在 JFrame
中显示图标。我添加它的方法是将它添加到 JLabel
,然后将 JLabel
添加到 JFrame
。我将项目导出到 运行nable Jar 文件中,然后双击该 jar。它没有 运行.
我测试了只是在 JFrame
上添加一个正常的 JLabel
而没有图标代码,当我导出并 运行 它时它可以工作。
每当我在代码中添加以下行时,它都会弄乱 运行nable Jar 文件。
JLabel s1 = new JLabel(new ImageIcon(getClass().getResource("/Images/Pattern1.png")));
我注意到它在获取资源时可能有问题。我的 Image Pattern1 存储在名为 Images 的文件夹中,该文件夹位于我的项目 src 文件夹中。 所以当我导出它时,我确定它在 运行nable jar 文件中。
这是我的代码
package main;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame {
public MyFrame() {
JLabel s1 = new JLabel(new ImageIcon(getClass().getResource("/Images/Pattern1.png")));
this.add(s1);
//JLabel test = new JLabel("Test");
//this.add(test);
}
public static void main(String[] args) {
MyFrame f = new MyFrame();
f.pack();
f.setVisible(true);
}
}
这是我项目中的文件的样子。
谢谢
特别是 Windows,Java 可以放宽文件名中大小写的使用。当 运行 在 Eclipse 中时,Pattern1.PNG
可能是直接从文件系统中提取出来的。
然而,一旦嵌入到 Jar 中,大小写匹配就会变得精确。这是因为资源只是添加到 zip 文件中,Java 使用 Zip 条目信息来查找内容。
确保您的命名准确无误,以避免出现问题。尝试 /Images/Pattern1.PNG
而不是 /Images/Pattern1.png