我正在尝试在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");从类路径中获取它。
Karl
getCanonicalPath
或getCanonicalFile
来解析相对路径。System.out.println(new File("../../../ggla/samples/obj/linux_x86")
.getCanonicalPath());
您可以像您所描述的那样使用相对路径,它应该可以工作。因此,错误可能出现在其他地方。
请发布一个完整的程序以重现您的错误,然后我们可能能够提供帮助。
对于相对路径,也许你可以使用Java提供的方法之一作为相对路径的开头,例如getRelativePath....在Java中,你必须使用/而不是//来表示字符串!