[英]IntelliJ run configuration environment variables not appearing in System.getenv
[英]System.getenv() does not list all the environment variables
我注意到我的一些環境變量沒有被JVM接收。
在我的.bash_profile
我定義了以下內容:
IO_HOME='some_value'
export IO_HOME
並通過在shell中做:
echo $IO_HOME
我得到了正確的結果。
但是System.getProperties()
和System.getenv()
都沒有顯示正在設置的變量。 我嘗試了Java 6和Java 7。
有什么我想念的嗎?
將環境導出到生成的進程非常穩定; 如果System.getenv()
不包含變量,那么它是因為它不在環境中。 要檢查的幾件事情,都與流程的啟動方式有關:
您是從導出變量的環境啟動Java進程嗎? 例如,如果它位於.bash_profile中,並且您正在從菜單或桌面執行java程序,那么在將其添加到.bash_profile中后,您必須注銷並登錄,以便桌面查看變量。
變量是否明確地從過程的環境中刪除了? ProcessBuilder允許這樣做,大多數產生進程的API也是如此。
在確保在該shell中導出變量之后,要嘗試的一件事是從命令行shell啟動該過程。
在Windows中,我最近看到一些瘋狂的行為,其中IntelliJ在設置用戶或系統環境變量后拒絕顯示來自System.getenv()
所有env變量。 訣竅是從DOS框啟動IntelliJ。 對於Windows用戶:可能重啟(或注銷/登錄)將解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.