Java代码编译后不读取csv



所以我有一个完成的java项目。当我在VSCODE上按下run类时,它可以读取csv。App类是主类。然而,当我编译项目并键入"Java应用程序"时;在终端上找不到CSV的位置。我不知道为什么。这是我得到的错误

Exception in thread "main" java.io.FileNotFoundException: AIR-QUALITY-PROJECT/lib/1year.csv (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:211)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:153)
at DataHandler.readDataFromCSV(DataHandler.java:18)
at App.main(App.java:14)

CSV在lib中,我正在从src运行App。同样,当我在VSCODE

上运行类时,这个CSV运行良好我试着把1年的csv放在根,在src,一切!!当我编译它时它不起作用

这就是我调用路径

的方式
private static final String PATH = "AIR-QUALITY-PROJECT/lib/1year.csv";

当我在VSCODE 上按下run类时,再次完美运行

App.java在SRC目录下,1year.csv在lib目录下

您正在使用一个相对路径。这意味着相对于应用程序运行的位置。

如果你想要一个可靠的应用程序,你应该使用绝对路径,最好是在运行应用程序时配置或传递该路径。

在这种情况下,记录程序运行时的currentPath是什么是有用的。你可以这样做,例如:

System.out.println("Current path is: " + new File("").getAbsolutePath());

所有的相对路径都必须相对于这个路径。


注。在java中有各种方法来获取currentPath。这只是其中之一。

最新更新