Java:访问与.jar位于同一目录中的文件

时间:2014-11-03 19:38:07

标签: java file jar

我有一个程序,它使用一个名为list.txt的文件来填充ArrayList及其内容,然后获得一个随机行。

这是加载文件的部分:

public class ReadList {
    private Scanner f;

    public void openFile(){

        try{
            f = new Scanner(new File("list.txt"));
        }catch(Exception e){
            System.out.println("File not found!");
        }
    }

但是,从.jar文件运行它时不起作用。我将txt放在同一目录中并使用f = new Scanner(new File("./list.txt"));但它不起作用。我也尝试了一些我在网上找到的东西,但我能做的就是a)获得包含.jar的.jar的完整路径(/home/user/java/program.jar),和b)得到一个完整的目录的路径,但没有/在最后(/ home / user / java),这是一个问题,因为我希望这个程序在Windows和Linux上工作,因此我不能简单地做(“/ home / user / java“+”/ list.txt“),因为Windows在路径中使用反斜杠。

那么,无论文件位于哪个目录,只要它与.jar位于同一个目录,只需定位特定文件(总是称为list.txt)的简单方法是什么?

1 个答案:

答案 0 :(得分:2)

使用此:

String filePath = System.getProperty("user.dir") + File.separator + "file.txt";

filePath现在将包含file.txt的完整路径,该路径与您的jar在同一个目录中。