路径,相对,直接

时间:2016-05-24 21:40:49

标签: java path

我知道有几个类似的问题,然而,其中的例子并不清楚,或者我无法从中获利 - 对我感到羞耻。

所以我的问题是使用GUI在简单的应用程序中加载图像。 e.g:

我在"D:\javaeclipseprog\Graphics\src\images""D:\javaeclipseprog\Graphics\src\app"中的类和java文件中获得了图片 当我使用直接路径:"D:/javaeclipseprog/Graphics/src/images/icon.jpg"一切正常,但作为良好实践,我希望从相对路径获取它们,据我所知应该是:"./images/icon.jpg"。 不幸的是它没有用。

任何帮助表示感谢,提前谢谢。

4 个答案:

答案 0 :(得分:1)

../../images/icon.jpg应该可以正常使用

你要去两个文件夹然后直接进入正确的文件夹。

路径

检查此方法的一种简单方法是使用PathsPath类和方法。

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"。