在Java中使用相对目录路径
我试图使用相对路径来定位Java类中的可执行文件,而不是使用硬编码的行,但使用类似于:
final static String directory = "../../../ggla/samples/obj/linux_x86"
失败…在Java中使用相对路径的正确方法是什么?
最可能的解释是您当前的目录不在您认为的位置。 您可以检查user.dir的系统属性以查看应用程序的基本路径,或者您可以执行以下操作:
System.out.println(new File(".").getCanonicalPath());
在您使用相对路径调试相对引用开始的位置之前。
使用System.out.println(System.getProperty(“user.dir”)); 查看当前目录的位置。 然后,您可以使用此地址的相对路径。
或者,如果您不需要更新您尝试读取的文件,请使用getResourceAsStream(“filename”)从类路径中获取它;
卡尔
您需要的是getCanonicalPath
或getCanonicalFile
来解析相对路径。
System.out.println(new File("../../../ggla/samples/obj/linux_x86") .getCanonicalPath());
您可以使用您描述的相对路径,它应该可以工作。 所以错误可能在其他地方。
请发布一个完整的程序来重现您的错误,然后我们可能会提供帮助。
我将首先使用Java File类中指定的分隔符和路径分隔符。 但是,正如我在评论中所说,我需要更多的信息而不是“失败”才能提供帮助。
对于相对路径,也许您可以使用java提供的方法之一作为getRelativePath的相对路径的开头….您必须在java中的String中使用/而不是//!