在Java'中获取父目录;s文件API

在Java'中获取父目录;s文件API,java,file-io,filesystems,Java,File Io,Filesystems,注意:这里我只对“纯JRE”解决方案感兴趣:也就是说,涉及JRE附带的类型的解决方案(很可能存在于java.io包中)。我敢肯定,ApacheCommons等提供了实用程序类,可以通过单个方法调用很好地实现这一点,但这里我需要纯JRE 我有以下运行时目录结构: MyProject/ fizz.txt src/ com/ myorg/ Driver 我的Driver是一个入口点(包含一个静态main方法),实

注意:这里我只对“纯JRE”解决方案感兴趣:也就是说,涉及JRE附带的类型的解决方案(很可能存在于
java.io
包中)。我敢肯定,ApacheCommons等提供了实用程序类,可以通过单个方法调用很好地实现这一点,但这里我需要纯JRE

我有以下运行时目录结构:

MyProject/
    fizz.txt
    src/
        com/
            myorg/
                Driver
我的
Driver
是一个入口点(包含一个静态
main
方法),实际上我将从命令行调用它,与我的项目构建/部署的其余部分分开,等等:

java com.myorg.Driver -url blah.example.com
等等

驱动程序
中,我需要阅读
fizz.txt
并用它做一些事情。注意:
fizz.txt
将始终位于
驱动程序
上方的3个父目录中

在驾驶员内部,我有以下代码:

File fizz = new File("../../../fizz.txt");
System.out.println("fizz = " + fizz.getAbsolutePath());
当我运行
驱动程序
时,出现以下异常:

Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: ../../../fizz.txt not found.
    at com.myorg.Driver(Driver.java:76)
    at com.myorg.Driver.main(Driver.java:45)
fizz = /home/myuser/relay/workbench/eclipse-juno/workspace/MyProject/../../../

Java似乎没有将“
”的概念视为“的父级”关系。所以我问:如何使用文件API(再次,纯JRE)从
驱动程序访问
fizz.txt
?提前谢谢

文件
引用从Java执行的角度来看是上下文的,而不是您的类

就Java而言,您的执行上下文将是
MyProject
,这意味着您应该尝试使用
新文件(“fizz.txt”)

Java尊重“.”的概念,将其作为关系的“父级”。问题是,它使用当前工作目录作为引用,而不是类所在的目录

如果你想把文件放在你的类树中,你可以考虑调用<代码> GeCype().GETRealSuffSturnScript(“文件名”)< /C>方法来访问它。那么您的代码将不依赖于当前的工作目录