图像未在.jar中运行

时间:2013-05-26 21:55:00

标签: java image jar path

我正在制作一个Java项目,现在它已经完成了,我想创建一个.jar版本。 但是当我运行.jar版本时,图像不包括在内。我在Mac上与Netbeans合作。

我尝试制作此代码:

private static String chemin = System.getProperty("user.dir");
private String fond_path = chemin+"/src/hepta/Images/FondParametres.png";

fondPanels = new ImageIcon(fond_path);

但它似乎不适用于.jar版本,即使图像与之前的位置相同!

我的任务是,为什么它有所不同,因为路径可用?

(我确切地说,我做了一些研究,找到这样的代码:

URL imageurl = getClass().getResource("/images/images2.gif"); 
Image myPicture = Toolkit.getDefaultToolkit().getImage(imageurl);
JLabel piclabel = new JLabel(new ImageIcon( myPicture ));

但我真的不明白其中的区别)

谢谢!

1 个答案:

答案 0 :(得分:3)

不同的是,第一个是文件引用。该路径指向文件系统中的文件。

第二个是资源引用,指向zip文件中的条目,Java知道如何阅读。

当您查看包含.jar文件的文件夹时,您将不会有目录src/hepta/Images。这意味着如果您尝试使用文件引用,Java将无法找到有问题的文件。

相反,您需要告诉Java根据它的类路径/搜索路径查找资源,该路径指向嵌入在.jar文件中的资源 - 这只是一个zip文件一些额外的......