有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Maven项目中资源文件的路径是什么?

在我的Maven项目中,我在main方法中有以下代码:

FileInputStream in = new FileInputStream("database.properties");

但总是得到一个找不到文件的错误

我已经将该文件放在src/main/resources中,并将其正确复制到target/classes目录(我相信这是Maven resources的预期行为),但在实际运行该程序时,它似乎永远找不到该文件。我尝试过其他各种途径:

FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");

但似乎什么都不管用

那么正确的路径是什么呢


根据下面“否认”的回答,我需要的是:

InputStream in = TestDB.class.getResourceAsStream("/database.properties")

其中TestDB是类的名称

谢谢你的帮助,迪森


共 (1) 个答案

  1. # 1 楼答案

    您不能像那样直接加载文件,您需要使用资源抽象(资源不仅可以在文件系统中,而且可以在类路径上的任何位置—在jar文件中或其他地方)。这种抽象是加载资源时需要使用的。资源路径与类文件的位置相关,因此需要在前面加一个斜杠才能到达“根”:

    InputStream in = getClass().getResourceAsStream("/database.properties");