2012-03-20 130 views
0

如果我有一個需要設置特定環境變量的Java應用程序,但我不能將它們放在bash.rc或bash_profile中,也不能將它們放在/ etc/profile.d是否可以在Java進程中設置它們?或者這些需要在java進程運行之前設置?每次手動設置它們都不是一種選擇,因爲我希望它們對用戶是透明的。在Linux上從Java進程中設置Shell環境變量

+0

請澄清:您想要設置環境變量爲程序內的硬編碼值,然後讀取這些環境變量? – 2012-03-20 18:01:15

+1

可能的重複[如何從Java設置環境變量?](http://stackoverflow.com/questions/318239/how-do-i-set-environment-variables-from-java) – 2012-03-20 18:09:22

回答

4

從shell腳本啓動java進程。腳本將首先定義並導出環境變量。

-1

你試試嗎?

System.setProperty("KEY", "VALUE"); 
+0

這是一個Java系統屬性。這不是一個環境變量。 – 2012-03-20 18:03:28

+0

我的不好,我不夠小心。 – 2012-03-20 18:07:40

0

我懷疑這是不可能的。 System.getenv()是一個不可修改的映射,意味着你不能修改它中的元素。

+0

他可以使用ProcessBuilder來設置env變量 - 請參閱我在帖子中放置的鏈接以及「可能的重複」評論 – 2012-03-20 18:18:44