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