我正在使用Config。用于将参数传递给我的方法的属性文件现在我从
加载文件 Properties Config= new Properties();
Config.load(new FileInputStream("C:\\Config. properties "));
由于我不想保持硬编码,我如何设置它与包级别。或在申请中。
先谢谢。
答案 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:死简单。缺点:它并不那么强大。如果您从其他地方启动应用程序而不更改之前的工作目录,则无法找到该文件。