我正在使用 Maven 开发桌面 Java 应用程序。 我得到了一个 *.properties 文件,我需要在执行期间检索该文件(src/resources/application.properties)。 我唯一想到的是使用:
private Properties applicationProperties;
applicationProperties.load(new BufferedInputStream(new FileInputStream("src/resources/application.properties")));
如果我直接从 IDE 运行我的应用程序,这将起作用。 我想保持输出层次结构清晰,因此我设置 maven 将资源文件夹直接复制到目标文件夹(这是输出应用程序的 basedir)。这样 application.properties 文件将不会加载(因为我有 target/resources/application.properties 但没有 target/src/resources/application.properties)。
管理资源的最佳方法是什么,以便它们在我从 IDE 调试并直接运行构建的 jar 文件时都可以工作?
最佳答案
不要期望文件位于 src
文件夹中 - 它在运行时不存在。属性文件位于 /bin
中。但也不要依赖于此。因为 FileInputStream
仅采用绝对路径。
当您需要类路径相对路径时,请使用:
InputStream is = YourClass.class.getResourceAsStream("/a.properties")`
(maven 将文件从 /src/main/resources
发送到类路径的根目录)
关于java - 如何检索.properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113384/