java - 在eclipse项目中放置属性文件的位置

标签 java eclipse properties-file

请告诉我将我的 .properties 文件放在我的 eclipse 项目中的确切位置。我是否为它制作一个单独的文件夹? 我想以这样一种方式表达它,以便我能够以 JAR 形式轻松地分发我的项目。

谢谢。

编辑:

我想将属性文件放在以后可以在任何操作系统上轻松编辑的方式。

最佳答案

我使用的方法是为了能够轻松更改配置而无需重新部署

项目根目录中的属性文件(具有默认值)的一个版本,我总是将其放入应用程序包 (foo.bar.myapp) 中。我使用 getResourceAsStream("/foo/bar/myapp/config.properties") 或类似类包相关示例中的方式加载默认值。

另外我准备了一个系统属性:

String configFileLocation = System.getProperty("config");

并且只需使用从作为属性传递的配置文件中读取的属性覆盖默认值。

例如:

Properties props = new Properties();
props.load(Main.class.getResourceAsStream("mydefault.properties"));

System.out.println("default loaded: " + props);

String configFile = System.getProperty("config");
if (configFile != null) {
    props.load(new FileInputStream(configFile));
    System.out.println("custom config loaded from " + configFile);
}

System.out.println("custom override: " + props);

这将首先加载存储在名为 mydefault.propertiesfoo.bar 包中的项目下的资源,然后加载系统属性 config 已配置,它将使用引用路径加载覆盖加载的属性。

可以使用 -D 参数设置系统属性,在这种情况下类似于:java -Dconfig=/home/user/custom.properties foo.bar.Main。或者,如果您在 Web 应用程序(例如 Tomcat)中,则可以使用 CATALINA_OPTS 设置此属性。

关于java - 在eclipse项目中放置属性文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656497/

相关文章:

java - 即使已经安装了新版本,Eclipse 中也会出现旧的 JRE 版本错误

apache-flex - 重构时出现 StackOverflowError

java - 从可以采用多种形式并从 Java 中的 .properties 文件加载的字符串中提取值的最佳方法

java - 查找点是否在多边形内 - JAVA jts/awt/geotools

java - 如何组合验证两个或多个字段?

java - getIntent()用红色写成

maven - 如何在属性文件中写入相对路径

java - 如何将内部函数变成自己的函数?

java - 无法将 -ea 参数添加到 Eclipse 类

spring - 构建后、部署前的属性文件配置