Java 项目在 Eclipse 上工作但在导出到可运行的 jar 文件时不工作
Java project working on Eclipse but not working when exported to runnable jar file
我在将 java 文件导出到可运行的 jar 文件时遇到问题。
在 eclipse 中它工作正常,但是当我导出它时,它不起作用。
我已经尝试了 (java -jar MyJar.jar) 来获取日志,但它说
"Unnable to access the jar file"
我认为问题是因为:
java.net.URL logoOneUrl = getClass().getResource("/logo.png"); //already tried without the "/" and it doesn't work withouth the "/"
Icon logoOne = new ImageIcon(logoOneUrl)
因为当我把它放在评论中时 //
当我导出它时它运行但没有图像。
我也试过这种方法:
java.net.URL logoScience = getClassLoader().getResource("logo.png");
但它也不起作用。
我究竟做错了什么?
如何在 JLabel 上导出带有图像的可运行 jar 文件?
(这是我的 JLabel 上的内容)
JLabel lblImgLogin = new JLabel(logoOne);
更新
ImageIcon icon = createImageIcon("/logo.png","a pretty but meaningless splat");
protected ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
} return null;
}
JLabel lblImgLogin = new JLabel(icon);
同样的问题,在 eclipse 上工作但在导出到可运行的 jar 文件时不工作
这个是正确的:
public class MainApp {
public static void main(String[] args) {
JFrame frame = new JFrame("Testing");
ImageIcon icon = createImageIcon("/resources/logo.png");
JLabel label1 = new JLabel("Image and Text", icon, JLabel.CENTER);
//Set the position of the text, relative to the icon:
label1.setVerticalTextPosition(JLabel.BOTTOM);
label1.setHorizontalTextPosition(JLabel.CENTER);
frame.getContentPane().add(label1);
frame.pack();
frame.setVisible(true);
}
protected static ImageIcon createImageIcon(String path) {
URL imgURL = MainApp.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
}
创建文件夹名称'Resources'(正是这个名称)。现在将 logo.png 保存在 Resources 文件夹中。现在使用代码如下。
ImageIcon imageIcon = new ImageIcon(getClass().getResource("/Resources/logo.png"))
编译并构建 jar(使用 'package required libraries for generated jar' 进行 Eclipse 导出)。如果在解压缩 jar 后,您得到 Resources 文件夹和它下面的文件,那么希望它能正常工作。抱歉我的英语不好
我在将 java 文件导出到可运行的 jar 文件时遇到问题。 在 eclipse 中它工作正常,但是当我导出它时,它不起作用。
我已经尝试了 (java -jar MyJar.jar) 来获取日志,但它说 "Unnable to access the jar file"
我认为问题是因为:
java.net.URL logoOneUrl = getClass().getResource("/logo.png"); //already tried without the "/" and it doesn't work withouth the "/"
Icon logoOne = new ImageIcon(logoOneUrl)
因为当我把它放在评论中时 //
当我导出它时它运行但没有图像。
我也试过这种方法:
java.net.URL logoScience = getClassLoader().getResource("logo.png");
但它也不起作用。
我究竟做错了什么?
如何在 JLabel 上导出带有图像的可运行 jar 文件?
(这是我的 JLabel 上的内容)
JLabel lblImgLogin = new JLabel(logoOne);
更新
ImageIcon icon = createImageIcon("/logo.png","a pretty but meaningless splat");
protected ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
} return null;
}
JLabel lblImgLogin = new JLabel(icon);
同样的问题,在 eclipse 上工作但在导出到可运行的 jar 文件时不工作
这个是正确的:
public class MainApp {
public static void main(String[] args) {
JFrame frame = new JFrame("Testing");
ImageIcon icon = createImageIcon("/resources/logo.png");
JLabel label1 = new JLabel("Image and Text", icon, JLabel.CENTER);
//Set the position of the text, relative to the icon:
label1.setVerticalTextPosition(JLabel.BOTTOM);
label1.setHorizontalTextPosition(JLabel.CENTER);
frame.getContentPane().add(label1);
frame.pack();
frame.setVisible(true);
}
protected static ImageIcon createImageIcon(String path) {
URL imgURL = MainApp.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
}
创建文件夹名称'Resources'(正是这个名称)。现在将 logo.png 保存在 Resources 文件夹中。现在使用代码如下。
ImageIcon imageIcon = new ImageIcon(getClass().getResource("/Resources/logo.png"))
编译并构建 jar(使用 'package required libraries for generated jar' 进行 Eclipse 导出)。如果在解压缩 jar 后,您得到 Resources 文件夹和它下面的文件,那么希望它能正常工作。抱歉我的英语不好