Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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和eclipse中查找具有相同字符串计算的资源_Java_Resources_Path_Javax.imageio - Fatal编程技术网

Java 在.jar和eclipse中查找具有相同字符串计算的资源

Java 在.jar和eclipse中查找具有相同字符串计算的资源,java,resources,path,javax.imageio,Java,Resources,Path,Javax.imageio,我想获取ImageIO从一些.png文件中读取BuffereImage的资源路径。 在开发项目时,我使用了“/bin/stuff/icons/image.png”的相对路径,但当我将所有内容放在一个.jar文件中时,这肯定不起作用,因此,我需要一种方法来获取这些资源的路径,无论是在eclipse中测试时还是以后在.jar中运行时。不要在eclipse中的bin目录下放置任何内容:如果在项目上运行clean,它将被擦除 您可以定义一个新的源文件夹,如resources,然后将图像放在那里。这样,它

我想获取ImageIO从一些.png文件中读取BuffereImage的资源路径。
在开发项目时,我使用了“/bin/stuff/icons/image.png”的相对路径,但当我将所有内容放在一个.jar文件中时,这肯定不起作用,因此,我需要一种方法来获取这些资源的路径,无论是在eclipse中测试时还是以后在.jar中运行时。

不要在eclipse中的
bin
目录下放置任何内容:如果在项目上运行clean,它将被擦除

您可以定义一个新的源文件夹,如
resources
,然后将图像放在那里。这样,它将自动复制到
bin
文件夹中

如果您将
resources
文件夹包括在Jar中,则可通过以下方式在两种环境中使用该文件夹:

ImageIO.read( getClass().getResource("/image.png") )

PS:您可以避免使用不同的资源文件夹,但混合使用源和图像会很快污染您的源文件夹。

不要在Eclipse中的
bin
目录下放置任何内容:如果您对项目运行清理,它将被删除

您可以定义一个新的源文件夹,如
resources
,然后将图像放在那里。这样,它将自动复制到
bin
文件夹中

如果您将
resources
文件夹包括在Jar中,则可通过以下方式在两种环境中使用该文件夹:

ImageIO.read( getClass().getResource("/image.png") )

PS:您可以避免使用不同的资源文件夹,但混合使用源和图像会很快污染源文件夹。

在多次尝试查找文件和将输入流导入文件后,我得出结论,这种方法每次都有效:

InputStream in = ClassLoader.getSystemClassLoader().getResourceAsStream(path)
BufferedImage image = ImageIO.read(in)
路径在哪里

"projectName/resourceFolder/" + nameOfResource.stuff
如eclipse项目的src目录中所示

例如

当只获取资源,然后获取链接到文件的资源路径时,您将在使用.jar时获得FileNotFoundExceptions(但在使用eclipse进行测试时不会得到,因此应该提醒您,不要认为他的代码有效)


和-否-我不在bin/中保存图像-但是它们被复制到这个目录中,因此我在测试时在那里找到它们。现在一切似乎都正常了。

在尝试了大量查找文件和将输入流导入文件后,我得出结论,这种方法每次都有效:

InputStream in = ClassLoader.getSystemClassLoader().getResourceAsStream(path)
BufferedImage image = ImageIO.read(in)
路径在哪里

"projectName/resourceFolder/" + nameOfResource.stuff
如eclipse项目的src目录中所示

例如

当只获取资源,然后获取链接到文件的资源路径时,您将在使用.jar时获得FileNotFoundExceptions(但在使用eclipse进行测试时不会得到,因此应该提醒您,不要认为他的代码有效)

和-否-我不在bin/中保存图像-但是它们被复制到这个目录中,因此我在测试时在那里找到它们。现在一切似乎都在运转