2011-07-18 45 views
0

在Linux命令行:我如何得到一個shell環境變量的值在Java

  1. 出口DB_SYSTEM = mysql的
  2. 回聲$ DB_SYSTEM 結果= mysql的
  3. 在Java中,我想訪問和DB_SYSTEM
  4. 的打印值

則可能是:

 
public Properties getEnvironment() throws java.io.IOException { 
    Properties env = new Properties(); 
    env.load(Runtime.getRuntime().exec("env").getInputStream()); 
    return env; 
    } 

Properties env = getEnvironment(); 
String myEnvVar = env.get("DB_SYSTEM"); 

回答

3

只需使用System.getenv

String dbSystem = System.getenv("DB_SYSTEM"); 

如果你不帶參數調用它,它返回所有的環境變量:

Map<String, String> env = System.getenv(); 
String dbSystem = env.get("DB_SYSTEM"); 
+1

謝謝,只是一個額外的問題,怎麼會在IDE/JVM知道的殼牌環境?在我的情況下,我測試這使用Netbeans和在殼牌我聲明$出口DB_SYSTEM = mysql,當我嘗試ot打印它在netbeans/JVM,我得到「空」 – kamal

+1

@kamal:確保:1.'出口'第一。 2.從_same_ shell運行NetBeans。 (即直接在同一個shell中鍵入'netbeans',不要從圖標或其他東西中啓動它。) –