在Java中使用相对目录路径

在Java中使用相对目录路径,java,file,Java,File,我尝试使用相对路径来定位Java类中的可执行文件,而不是使用硬编码行,但使用类似于: final static String directory=“../../../ggla/samples/obj/linux_x86” 失败。。。在Java中使用相对路径的正确方法是什么?您可以使用您描述的相对路径,它应该可以工作。因此,错误可能在其他地方 请发布一个完整的程序来重现您的错误,然后我们可能会提供帮助。我将首先使用Java中指定的分隔符和路径分隔符。但是,正如我在评论中所说的,我需要的信息比“它失

我尝试使用相对路径来定位Java类中的可执行文件,而不是使用硬编码行,但使用类似于:

final static String directory=“../../../ggla/samples/obj/linux_x86”


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

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


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

我将首先使用Java中指定的分隔符和路径分隔符。但是,正如我在评论中所说的,我需要的信息比“它失败”更多,才能起到帮助作用。

对于相对路径,也许您可以使用java为相对路径的开头提供的方法之一,如getRelativePath。。。。 在java中,必须在字符串中使用/而不是//

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

或者,如果您不需要更新试图读取的文件,请使用getResourceAsStream(“文件名”)从类路径获取该文件


卡尔

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

 System.out.println(new File(".").getCanonicalPath());
在使用该相对路径调试相对引用的起始位置之前。

您需要的是或解析相对路径

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

定义失败。您收到了什么错误消息?您是否为您的操作系统使用了正确的路径分隔符(您应该使用一个Java系统变量作为路径分隔符)?您当前的目录是什么?该文件绝对在哪里?我不知道其他平台,但在WinXP+和Linux上,使用正斜杠似乎可行。但是+1表示File.separator。我通常在我的个人应用程序中很懒,并且使用正斜杠,但是在生产代码中(工作时),我将所有内容都转换为使用文件中的分隔符和路径分隔符。