找到Java加载文件的位置?

Pet*_*y B 2 java

我只是想知道是否有办法找出java程序将搜索文件的位置.

我正在尝试加载一个设置文件,FileInputStream fstream = new FileInputStream("ldaplookup.ini");但它正在抛出一个File not found错误.ini文件与类文件位于同一文件夹中,但我假设它正在其他地方搜索.

谢谢,-Pete

Ada*_*amC 5

Java从当前工作目录加载文件以获取相对路径.如果你想看看是什么,试试这个:

System.out.println(System.getProperty("user.dir"));
Run Code Online (Sandbox Code Playgroud)

  • 实际上,对于要分发的真实程序,您希望使用相对路径.你是如何调用的(命令行,ide等)? (2认同)

Mic*_*ers 5

由于" new FileInputStream("ldaplookup.ini");"相当于" new FileInputStream("./ldaplookup.ini");",您可以尝试:

System.out.println(new File(".").getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)


not*_*oop 5

FileInputStream相对于执行路径查找文件.如果资源文件与类位于同一文件夹中,则可以尝试使用:

InputStream stream = this.getClass().getResourceAsStream("ldaplookup.ini");
Run Code Online (Sandbox Code Playgroud)

  • 好处是,当类在jar中时,此方法也可以工作,因此它在IDE中或部署时的工作方式相同. (3认同)