我创建了一个项目,在项目内部有一个名为Source Packages的文件夹,其中包含我的包。 我需要图像,我想将它们复制到项目内的一个文件夹中(或者更好地在Source包中),这样当我创建.jar时,图像文件夹将位于jar文件中。 我怎么能在NetBean中做到这一点?
编辑:我仍然无法弄清楚,这是代码:
Image star;
InputStream stream = getClass().getResourceAsStream("images/star.png");
star= ImageIO.read(stream);
它不起作用,我收到错误“IllegalArgumentException input == null”
文件夹“images”位于项目“Game”的文件夹中,如果我尝试使用此代码:
Image star;
InputStream stream = getClass().getResourceAsStream("images/star.png");
star= Toolkit.getDefaultToolkit().getImage("images/star.png");
它有效,我对InputStream做错了什么?
答案 0 :(得分:2)
您只需将图像复制/粘贴到包中或包装所代表的文件夹中即可。当您想要访问图像时:
InputStream stream = getClass().getResourceAsStream("/com/my/pkg/my_image.png");
有关更多示例,请参阅此SO问题:
how to add image from spectified package into label, frames etc
编辑: ClassLoader.getResourceAsStream(String)将查找您为路径指定的包中的任何资源。例如,如果您想从驻留在com.my.pkg.a
的类中获取位于com.my.pkg.b
的图像:
// From com.my.pkg.b.MyClass
InputStream stream = getClass().getResourceAsStream("/com/my/pkg/a/my_image.png");
请注意,指定的路径将转到包a
。即使它位于不同的包中,也可以找到该图像。有关更详细的信息,请参阅内部使用的ClassLoader.getResource()的javadoc。
答案 1 :(得分:0)
该文件夹中的文件将包含在您的应用程序的jar中。