我能夠通過RunTime
類運行Linux命令。 有沒有一種從編程的方式從Java設置Linux全局環境的方法?用Java以編程方式設置Linux環境變量
我想對Java
[email protected]:/tmp# export TEST=v2
我已經使用的ProcessBuilder如下效仿以下Linux命令語句,但測試變量不發生變化。
ProcessBuilder pb = new ProcessBuilder("/bin/bash","-c","export TEST=v3" + "&& exec");
UPDATE: 其實我的最終目標是使用EMAIL_NAME環境作爲一個電子郵件地址,當我的兩個應用程序和機器被啓動,stopeed這些行爲將被髮送到EMAIL_NAME。 在這種情況下,我明白,不可能通過純Java代碼設置linux全局環境。所以我有一個解決方法是EMAIL_NAME將被保存在一個文件中,並且它將被更新或通過linux腳本或java代碼讀取。
這裏用'Linux'命令表示什麼意思? –
如果您使用'ProcessBuilder',當然可以在執行命令之前使用'.environment()'修改該映射的環境變量映射。 – fge
相似的答案:http://stackoverflow.com/questions/580085/is-it-possible-to-set-an-environment-variable-at-runtime-from-java - 雖然使用「ProcessBuilder」只會設置環境對於所有分叉的進程(進程由於從Java進程中調用而運行)。 – birryree