我从Git存储库导入了一个项目,并在Eclipse中为其添加了Maven性质。在资源文件夹中,我添加了一个名为的配置文件myconf.properties。现在,每当我尝试从Java代码打开此文件时,都会得到FileNotFoundException。该文件也存在于target/classesmaven编译项目后生成的文件夹中。
myconf.properties
FileNotFoundException
target/classes
谁能告诉我可能是什么问题?我尝试加载此文件的Java代码是:
props.load(new FileInputStream("myconf.properties"));
其中props是一个Properties对象。
props
Properties
谁能给我一些有关如何解决此问题的提示?
如果文件在编译后被放置在目标/类下,则它已经在构建路径中的目录中。目录src / main / resources是此类资源的Maven默认目录,并且Eclipse Maven插件(M2E)自动将其放置到构建路径中。因此,无需移动属性文件。
另一个主题是如何检索此类资源。构建路径中的资源自动位于正在运行的Java程序的类路径中。考虑到这一点,您应该始终使用类加载器加载此类资源。示例代码:
String resourceName = "myconf.properties"; // could also be a constant ClassLoader loader = Thread.currentThread().getContextClassLoader(); Properties props = new Properties(); try(InputStream resourceStream = loader.getResourceAsStream(resourceName)) { props.load(resourceStream); } // use props here ...