2012-03-11 56 views
0

我用Java編寫了一個使用兩個外部數據庫的程序。這些數據庫的路徑在我的程序代碼中是硬編碼的。如何爲我的程序創建環境變量

爲了使這一計劃可用於其他計算機上的其他用戶(誰也應該安裝在自己的電腦這兩個數據庫),我認爲,這兩個數據庫的路徑應該作爲環境變量?這怎麼能做到?

我不是一個專業的環境變量,所以你可以請告知在這種情況下應該做什麼?

在此先感謝

+0

取決於您正在使用的操作系統? Mac還是Windows?還是linux? – doNotCheckMyBlog 2012-03-11 14:14:19

+0

即時通訊使用Linux, – infoSyStem 2012-03-11 14:15:06

回答

0

爲了獲得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 

+0

謝謝,正是我所需要的! – infoSyStem 2012-03-11 14:27:34

+0

@infoSyStem:不客氣! – ruakh 2012-03-11 14:28:06

0

環境瓦爾通常不會處理應用程序配置的最佳方式,但如果必須,需要特定的操作系統文檔,以瞭解如何設置它們並從Java使用:

地圖= System.getenv ();

0

比環境變量而是屬性文件將是有用的和更便攜的。例如,在你的屬性文件,你可以有以下幾種:

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")); 

相當方便,,屬性的對象允許您指定默認值,所以你如果需要的話,仍然可以使用硬編碼值,然後用外部文件覆蓋它們。