如何指定属性文件的路径

时间:2011-10-12 06:34:55

标签: java

我正在使用Config。用于将参数传递给我的方法的属性文件现在我从

加载文件

Properties Config= new Properties(); Config.load(new FileInputStream("C:\\Config. properties "));

由于我不想保持硬编码,我如何设置它与包级别。或在申请中。

先谢谢。

6 个答案:

答案 0 :(得分:4)

使用ResourceBundle类。您只需指定属性文件名即可。如果路径应该在类路径中,它将从任何路径获取文件。

示例:

// abc.properties is the properties file,which is placed in the class path.You just need to 
// specify its name and the properties file gets loaded.
ResourceBundle s=ResourceBundle.getBundle("abc");
        s.getString("key");   //any key from properties file...

答案 1 :(得分:1)

将配置文件放在类路径中(.class文件所在的位置),然后使用

访问它
getClass().getClassLoader().getResourceAsStream(_path_to_config_file);

答案 2 :(得分:1)

我也只是建议但你也可以通过命令行参数传递配置文件的完整路径,例如:

java YourApp -config C:\\config.properties

答案 3 :(得分:1)

不应使用文件系统加载与应用程序一起打包的属性文件,而是使用类加载器。实际上,一旦打包应用程序,属性文件将嵌入到带有.class文件的jar文件中。

如果config.properties文件位于包com.foo.bar中,那么您应该使用

加载它
InputStream in = SomeClass.class.getResourceAsStream("/com/foo/bar/config.properties");

或者

InputStream in = SomeClass.class.getClassLoader().getResourceAsStream("com/foo/bar/config.properties");

您也可以使用相对路径加载它。如果SomeClass也在com.foo.bar包中,那么您可以使用。

加载它
InputStream in = SomeClass.class.getResourceAsStream("config.properties");

请注意,Java变量应始终以小写字母开头:config而不是Config

答案 4 :(得分:0)

有两种方法可以在运行时获取配置文件的路径。

a)从数据库中获取它。 b)从服务器级配置的JVM的自定义属性获取它 最佳进程为“b”,如果路径发生更改,您可以随时更改JVM的属性,只需重新启动服务器即可。

答案 5 :(得分:0)

如果它只是您担心的路径,那么您可以使用相对路径:

Config.load(new FileInputStream("Config.properties"));

这将查看当前工作目录。 upsdie:死简单。缺点:它并不那么强大。如果您从其他地方启动应用程序而不更改之前的工作目录,则无法找到该文件。