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