Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:访问与.jar位于同一目录中的文件_Java_File_Jar - Fatal编程技术网

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

Java:访问与.jar位于同一目录中的文件,java,file,jar,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){ Syste

我有一个程序,它使用一个名为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=newscanner(新文件(“./list.txt”)但它不起作用。我还尝试了一些我在网上找到的东西,但我能做的就是a)获取包含.jar的.jar的完整路径(/home/user/java/program.jar),以及b)获取目录的完整路径,但最后没有/at(/home/user/java),这是一个问题,因为我希望这个程序在Windows和Linux上都能工作,因此,我不能简单地执行(“/home/user/java”+”/list.txt”),因为Windows在路径中使用反斜杠

那么,只要该文件与.jar位于同一位置,那么将该文件(始终称为list.txt)作为目标的简单方法是什么呢

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

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

检查“user.dir”系统属性文件类中还有一个路径分隔符属性,因此您可以将其设置为平台无关(即,/或\或您使用的任何平台)