Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 如何访问不同文件夹中的图像?_Java_Image_Embedded Resource - Fatal编程技术网

Java 如何访问不同文件夹中的图像?

Java 如何访问不同文件夹中的图像?,java,image,embedded-resource,Java,Image,Embedded Resource,在Java中,如何访问不同文件夹中的图片?我有一系列图片,它们根据用户输入而变化,这就是x的用途 picture.setIcon(new ImageIcon("\\resources\\icons\\pictures\\"+x+".png")); 图像位于参考资料/图标/图片中(来自.class文件),但上面的代码不起作用。x的值不是问题,因为它可以正常工作。我对图片的称呼正确吗?我认为你应该使用正斜杠而不是反斜杠 new ImageIcon("/resources/icons/picture

在Java中,如何访问不同文件夹中的图片?我有一系列图片,它们根据用户输入而变化,这就是
x
的用途

picture.setIcon(new ImageIcon("\\resources\\icons\\pictures\\"+x+".png"));

图像位于参考资料/图标/图片中(来自.class文件),但上面的代码不起作用。
x
的值不是问题,因为它可以正常工作。我对图片的称呼正确吗?

我认为你应该使用正斜杠而不是反斜杠

new ImageIcon("/resources/icons/pictures/"+x+".png")
这是表示资源文件路径的标准Java跨平台方式。它仍然在Windows上工作——Java运行时库为您处理事务

我是不是用正确的方式称呼这些照片

可能不会。如果它们是(嵌入式)应用程序资源,则它们通常位于Jar中,并且通过基于
ImageIcon
String
构造函数(该构造函数期望
字符串
等同于
文件
路径)不可用

对于嵌入式资源,请通过
URL
访问它们

URL urlToImg = this.getClass().
    getResource("/resources/icons/pictures/"+x+".png");
picture.setIcon(new ImageIcon(urlToImg));
图像位于参考资料/图标/图片中(来自.class文件)

这是个问题。系统不关心类文件在哪里,而是从哪里调用程序

通过命令行指定资源文件夹

java -jar myJar.jar C:\\home\\of\\the\\images 
或者通过财产

java -jar myJar.jar -DImageHome=/foo/bar/images 
或者从一个属性文件是最灵活的

如果您想将图像放入jar,请使用Andrews建议,getClass().getRessource(“…”)


顺便说一句:我确信,前斜杠是可移植的。反斜杠不是

图片位于文件系统的类路径/其他位置