我知道有几个类似的问题,然而,其中的例子并不清楚,或者我无法从中获利 - 对我感到羞耻。
所以我的问题是使用GUI在简单的应用程序中加载图像。 e.g:
我在"D:\javaeclipseprog\Graphics\src\images"
,"D:\javaeclipseprog\Graphics\src\app"
中的类和java文件中获得了图片
当我使用直接路径:"D:/javaeclipseprog/Graphics/src/images/icon.jpg"
一切正常,但作为良好实践,我希望从相对路径获取它们,据我所知应该是:"./images/icon.jpg"
。
不幸的是它没有用。
任何帮助表示感谢,提前谢谢。
答案 0 :(得分:1)
../../images/icon.jpg
应该可以正常使用
你要去两个文件夹然后直接进入正确的文件夹。
检查此方法的一种简单方法是使用Paths
和Path
类和方法。
Path p1 = Paths.get("D:\\javaeclipseprog\\Graphics\\src\\app\\java.class");
Path p2 = Paths.get("..\\..\\images\\icon.jpg");
System.out.println(p1.resolve(p2).normalize()); // D:\javaeclipseprog\Graphics\src\images\icon.jpg
答案 1 :(得分:1)
在eclipse中运行它时,项目目录中的默认工作目录。这是src
所在的目录。在您的示例中,项目目录为:
D:/javaeclipseprog/Graphics
因此正确的路径是:
./src/images/trophy.png
编辑:只想添加您还可以使用getResource
方法通过相对于班级位置的路径加载文件。
答案 2 :(得分:1)
我会使用反斜杠,因为它似乎使用了Windows。在这种情况下,.\
表示代码所在的目录将包含您要使用的文件。如果您想要跳转到该目录的父目录,即包含源代码的目录,您将使用..\
你甚至可以做一次棕褐色,例如..\..\
将是一个有效的路径。尝试添加大量..\
以查找所需的目录。在此追逐中..\src\images\icon.jpg
(java项目中的父项是src)
另一个重要的事情是你使用/
而不是\\
这将是Windows上目录分隔符的符号(\
是一个特殊的字符必须是使用aditional \
进行搜索)为了便携性,我使用:
String sep = System.getProperty("file.separator");
String path = ".."+sep+"src"+sep+"images"+sep+"icon.jpg"
答案 3 :(得分:0)
我认为您需要使用的是" ../ images / icon.jpg"。
使用它就像你拥有它一样,它将在当前目录中查找,除非我对它的理解不正确,否则就是" D:\ javaeclipseprog \ Graphics \ src \ app"。