请告诉我我的 .properties 文件到底放在我的 Eclipse 项目中的哪个位置。我要为它创建一个单独的文件夹吗?我想把它放在这样一种方式,我将能够轻松地以 JAR 形式分发我的项目。
谢谢。
编辑:
我想以这样一种方式放置属性文件,以便以后在任何操作系统上都可以轻松地对其进行编辑。
请告诉我我的 .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);
这将首先加载存储在您的项目下foo.bar
名为包的资源mydefault.properties
,然后如果config
配置了系统属性,它将加载使用引用路径覆盖加载的属性。
可以使用-D
参数设置系统属性,在这种情况下,类似于:java -Dconfig=/home/user/custom.properties foo.bar.Main
. 或者,如果您在 Web 应用程序(例如 Tomcat)中,您可以使用CATALINA_OPTS
.
src/main/resource
将是一个理想的选择。