1

请告诉我我的 .properties 文件到底放在我的 Eclipse 项目中的哪个位置。我要为它创建一个单独的文件夹吗?我想把它放在这样一种方式,我将能够轻松地以 JAR 形式分发我的项目。

谢谢。

编辑:

我想以这样一种方式放置属性文件,以便以后在任何操作系统上都可以轻松地对其进行编辑。

4

2 回答 2

6

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

项目根目录中的一个版本的属性文件(具有默认值),我总是将它放在应用程序包(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);

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

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

于 2012-07-25T18:51:16.897 回答
0

src/main/resource将是一个理想的选择。

于 2012-07-26T17:41:36.120 回答