Java:访问与.jar位于同一目录中的文件
我有一个程序,它使用一个名为list.txt的文件来填充ArrayList的内容,然后得到一个随机行 以下是加载文件的部分: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
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”系统属性文件类中还有一个路径分隔符属性,因此您可以将其设置为平台无关(即,/或\或您使用的任何平台)