Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取存储在Jar中的文件_Java_File_Jar_Fileinputstream_Javax.imageio - Fatal编程技术网

Java 读取存储在Jar中的文件

Java 读取存储在Jar中的文件,java,file,jar,fileinputstream,javax.imageio,Java,File,Jar,Fileinputstream,Javax.imageio,我需要从项目中的资产文件中检索一些.png文件 我首先做了ImageIO.read(新文件(“assets/img.png”),但一旦我将项目导出到.jar,它就不起作用了,所以我做了ImageIO.read(新文件输入流(“assets/img.png”)),但它在.jar文件中仍然不起作用 我最后做了ImageIO.read(Main.class.getResourceAsStream(“assets/img.png”))但它返回一个空值 如何读取.jar中文件夹中的图像文件?谢谢 以下是如

我需要从项目中的资产文件中检索一些.png文件

我首先做了
ImageIO.read(新文件(“assets/img.png”)
,但一旦我将项目导出到.jar,它就不起作用了,所以我做了
ImageIO.read(新文件输入流(“assets/img.png”))
,但它在.jar文件中仍然不起作用

我最后做了
ImageIO.read(Main.class.getResourceAsStream(“assets/img.png”))
但它返回一个空值

如何读取.jar中文件夹中的图像文件?谢谢

以下是如何设置我的项目:

|Project/
|-com.n1ark.project/
|--Main.java
|--Other classes
|-assets/
|--ing.png
|--Other Images

最好的做法不是将图像放入jar中,您应该创建如下项目结构:

|----- project-folder
|--------- app.jar
|--------- assets
|------------- img.png
|------------- img2.png
因此,在您的代码中,您可以简单地使用:

ImageIO.read(new File("assets/img.png"));

把图像放在罐子里没有什么错。我错误地解释了自己,问题是当我把项目导出到罐子里时,我的项目实际上是像你展示的那样设置的!请注意,在我的解决方案app.jar中,是您导出的内容,因此您可以在pc中的某个位置创建一个名为project folder的文件夹,并将其放入导出的jar中,以及另一个名为imgs的文件夹,其中包含图像,所有内容都可以正常工作。我说这是最好的做法,因为您不需要将资源文件放在jar中,这使应用程序的打包更容易,但从未说过将图像放在jar中是错误的@dnault。您还可以检查以确保图像确实包含在jar中。从命令行扫描JAR内容的快速方法:
JAR-t
好的,这些纹理没有打包到项目中。谢谢你的帮助!