让我们考虑image.png
存储在一个名为icons的项目包中,我通常通过以下getResource()
方法获取图标:
String imgPath = getClass().getResource("/icons/image.png").toString();
//no problem with creating an ImageIcon with this path
Image img = new ImageIcon(imgPath).getImage();
//but the problem occures when trying to open this image through Desktop
//try-catch
Desktop.getDesktop().open(imagePath);
//or
File imgFile = new File(imgPath);
//error, this file does not exist!
我注意到从 URL 构造一个字符串会给出以 开头的输出,file:/....
加载图像没有问题,但在删除之前无法打开文件file:/
。
file:/
添加到字符串中的好处是什么?
我以为路径可能是一个文件,但我错了,即使定位到文件夹也会给出这个输出。