在Java中使用相对目录路径

时间:2009-07-15 13:46:53

标签: java file

我正在尝试使用相对路径来查找Java类中的可执行文件,而不是使用硬编码的行,但使用的方法如下:

final static String directory = "../../../ggla/samples/obj/linux_x86"

失败...在Java中使用相对路径的正确方法是什么?

6 个答案:

答案 0 :(得分:38)

最可能的解释是您当前的目录不在您认为的位置。您可以检查user.dir的系统属性以查看应用程序的基本路径,或者您可以执行以下操作:

 System.out.println(new File(".").getCanonicalPath());

在使用相对路径调试相对引用开始的位置之前。

答案 1 :(得分:2)

使用System.out.println(System.getProperty(“user.dir”));查看当前目录的位置。然后,您可以使用此地址的相对路径。

或者,如果您不需要更新您尝试阅读的文件,请使用getResourceAsStream(“filename”)从类路径获取它;

卡尔

答案 2 :(得分:1)

您需要getCanonicalPathgetCanonicalFile来解决相对路径。

System.out.println(new File("../../../ggla/samples/obj/linux_x86")
    .getCanonicalPath());

答案 3 :(得分:0)

您可以使用您描述的相对路径,它应该可以使用。所以错误可能在其他地方。

请发布完整的程序以重现您的错误,然后我们可以提供帮助。

答案 4 :(得分:0)

我首先要使用Java File class中指定的分隔符和路径分隔符。但是,正如我在评论中所说的那样,我需要更多的信息而不是“失败”才能提供帮助。

答案 5 :(得分:0)

对于相对路径,也许你可以使用java提供的方法之一作为getRelativePath的相对路径的开头.... 你必须在java中的String中使用/而不是//!