查找文本文件的路径

Finding pathway of a text file

我知道在 JAVA.

中有两种在读取文件时写入文件路径的方法
//1st way
    scanner = new Scanner(new File("C:\Users\User\IdeaProjects\EDSS\src\file\JobList.txt"));
//2nd way
    scanner = new Scanner(new File("src/file/JobList.txt"));

但是当我尝试通过名为 "Build Artifacts" 的东西在 IntelliJ 中使用第一种方式将格式从 .java 转换为 .exe(Application) 时,我可以顺利打开应用程序。但是,使用第二种方式,我无法打开应用程序,我发现这是因为路径。第一种方式只允许我 运行 仅在我的计算机中使用应用程序。如果我使用不同的用户名将文件复制到我朋友的笔记本电脑上,例如 ("C:\Users\Bernard..."),该应用程序也无法运行,我必须手动修改代码中的路径以 运行 应用程序。 有没有什么方法可以在不手动输入全长的情况下准确搜索路径,同时应用程序(.exe)可以使用它?

你运行遇到了绝对路径和相对路径的问题。

您的第一个选项是绝对路径。这意味着您将始终在计算机上的特定位置抓取文件,但如果该位置不存在,您将找不到它

您的第二个选项使用相对路径,它会根据程序的起始位置查找文件,因此 exe 可能会从与您构建 java 的命令行不同的位置开始。

解决方案是使用相对路径并确保 Joblist.txt 文件始终位于相对于您的 运行 位置的一个位置。

如果你想知道你的程序的起始路径在哪里你可以运行下面的代码:

System.out.println(new File(".").getAbsolutePath())