2012-02-13 128 views
2

我做了一个swing应用程序,它使用位于当前目录中名为'res'的文件夹中的图像文件。为此,我做这样的事情:如何创建一个具有依赖项的jar文件

BufferedImage img=ImageIO.read(new File(new String(System.getProperty("user.dir")+"\\res\\back.png"))); 

当我从命令提示符运行它时,它工作得很好。但是当我制作一个jar文件时,它不会找到res文件夹,尽管res文件夹位于jar文件夹中。但是,当我将res文件夹复制到与jar相同的目录中时,它将再次运行。我想要一个单独的jar文件,而不依赖于外部文件夹。从classpath也许

回答

0

负载:

InputStream in = getClass().getResourceAsStream("/res/back.png"); 
BufferedImage img = ImageIO.read(in); 
+0

它提供了以下异常:java.lang.IllegalArgumentException异常:输入== NULL!有任何想法吗 ?? – dotnetguy 2012-02-13 19:07:30

+0

没关系。有效。非常感谢。 :) 只是出于好奇心,为什么我使用的方法不起作用? – dotnetguy 2012-02-13 19:40:59

+0

因为操作系统不知道jar内的文件。就O/S而言,jar是它可以看到的文件,它不会将jar的内容视为单个文件。 – 2012-02-13 20:00:00

相关问题