我用Java編寫了一個使用兩個外部數據庫的程序。這些數據庫的路徑在我的程序代碼中是硬編碼的。如何爲我的程序創建環境變量
爲了使這一計劃可用於其他計算機上的其他用戶(誰也應該安裝在自己的電腦這兩個數據庫),我認爲,這兩個數據庫的路徑應該作爲環境變量?這怎麼能做到?
我不是一個專業的環境變量,所以你可以請告知在這種情況下應該做什麼?
在此先感謝
我用Java編寫了一個使用兩個外部數據庫的程序。這些數據庫的路徑在我的程序代碼中是硬編碼的。如何爲我的程序創建環境變量
爲了使這一計劃可用於其他計算機上的其他用戶(誰也應該安裝在自己的電腦這兩個數據庫),我認爲,這兩個數據庫的路徑應該作爲環境變量?這怎麼能做到?
我不是一個專業的環境變量,所以你可以請告知在這種情況下應該做什麼?
在此先感謝
爲了獲得Java中的環境變量的值,你寫的東西是這樣的:
String pathToDatabase = System.getenv().get("PATH_TO_DATABASE");
(其中PATH_TO_DATABASE
是環境變量的名稱)。這使用System.getenv()
來獲取所有環境變量的映射。
要設置在Linux中的環境變量的值,用戶可以寫這樣的事情:在運行程序之前
export PATH_TO_DATABASE=/this/is/the/path/to/the/database
。
謝謝,正是我所需要的! – infoSyStem 2012-03-11 14:27:34
@infoSyStem:不客氣! – ruakh 2012-03-11 14:28:06
環境瓦爾通常不會處理應用程序配置的最佳方式,但如果必須,需要特定的操作系統文檔,以瞭解如何設置它們並從Java使用:
地圖= System.getenv ();
比環境變量而是屬性文件將是有用的和更便攜的。例如,在你的屬性文件,你可以有以下幾種:
db.url = jdbc://foo/bar?whatever
db.user = username
db.password = password
那麼你的代碼可以讀出,在使用如下:
Properties properties = new Properties();
try {
properties.load(new FileInputStream("path/filename"));
} catch (IOException e) {
System.err.println("Eeeek!");
}
System.out.println(properties.getProperty("db.url"));
相當方便,,屬性的對象允許您指定默認值,所以你如果需要的話,仍然可以使用硬編碼值,然後用外部文件覆蓋它們。
取決於您正在使用的操作系統? Mac還是Windows?還是linux? – doNotCheckMyBlog 2012-03-11 14:14:19
即時通訊使用Linux, – infoSyStem 2012-03-11 14:15:06