首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索.properties?

如何检索.properties?
EN

Stack Overflow用户
提问于 2011-11-14 01:39:31
回答 2查看 200关注 0票数 0

我正在使用maven开发桌面java应用程序。我得到了一个需要在执行期间检索的*.properties文件(src/resources/application.properties)。我唯一想到的就是使用:

代码语言:javascript
复制
private Properties applicationProperties;
applicationProperties.load(new BufferedInputStream(new FileInputStream("src/resources/application.properties")));

如果我直接从IDE运行我的应用程序,这将会起作用。我想保持输出层次结构清晰,所以我将maven设置为直接将resources文件夹复制到目标文件夹(这是输出应用程序的基目录)。这样就不会加载application.properties文件(因为我有目标/resources/application.properties,但没有target/src/resources/application.properties)。

当我从IDE调试和直接运行构建的jar文件时,管理资源的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-14 01:46:58

不要期望文件会在src文件夹中-它在运行时并不存在。属性文件转到/bin。但也不要依赖这一点。因为FileInputStream只接受绝对路径。

当您需要类路径相对路径时,请使用:

代码语言:javascript
复制
InputStream is = YourClass.class.getResourceAsStream("/a.properties")`

(maven将文件从/src/main/resources发送到类路径的根目录)

票数 1
EN

Stack Overflow用户

发布于 2011-11-14 01:48:58

您应该从类路径加载属性文件,而不是从显式文件系统位置加载:

代码语言:javascript
复制
 applicationProperties.load(new BufferedInputStream(this.getClass().getResourceAsStream( "/application.properties" );

只要您的IDE配置为包括类路径上的资源目录(这应该是maven的默认目录),那么无论您是否在IDE中运行,这都将起作用,因为maven在打包归档文件时会将资源复制到正确的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8113384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档