場景:
在Ubuntu下已經啟動了Eclipse,然后通過終端設置了環境變量(export $ENV=123),然后通過System.getenv()獲取時顯示為空。
解釋:
環境變量僅在進程樹下方,並且只有在進程啟動時。Eclipse是您的Shell的子進程 - 因此,當您啟動Eclipse時,它繼承了您的Shell上定義的所有環境變量。
您可能在啟動Eclipse之后在Shell上定義了環境變量,因此,Eclipse及其創建的Java子進程不了解您的新環境變量。
由於這個行為,實際上這里的解決方案是退出Eclipse並從Shell重新啟動它,而環境變量之前定義。另一個選擇是轉到項目的運行配置並在其中定義環境變量。
參考: