![](/img/trans.png)
[英]How to specify a path in a properties file to be loaded with Java Properties
[英]How to Specify Path for Properties file
我正在使用Config。 用於將參數傳遞給我的方法的屬性文件現在我正在從
Properties Config= new Properties(); Config.load(new FileInputStream("C:\\\\Config. properties "));
由於我不想對其進行硬編碼,因此如何設置軟件包級別。 或在應用程序內。
提前致謝。
利用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...
我也只是建議,但您也可以通過命令行參數將完整路徑傳遞到配置文件,例如:
java YourApp -config C:\\config.properties
與應用程序打包在一起的屬性文件不應使用文件系統來加載,而應使用類加載器來加載。 確實,將應用程序打包后,屬性文件將與.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
。
將配置文件放在類路徑(您的.class文件所在的位置)中,並使用
getClass().getClassLoader().getResourceAsStream(_path_to_config_file);
有兩種方法可以在運行時獲取配置文件的路徑。
a)從數據庫中獲取。 b)從在服務器級別配置的JVM的自定義屬性中獲取它最佳過程是“ b”,如果更改了路徑,則可以隨時更改JVM的屬性,然后只需重新啟動服務器即可。
如果這只是您擔心的路徑,則可以使用相對路徑:
Config.load(new FileInputStream("Config.properties"));
這將在當前工作目錄中查找。 壞話:簡單死了。 不利之處:它沒有那么強大。 如果您從其他地方啟動應用程序而之前未更改工作目錄,則將找不到該文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.