2014-12-19 32 views
1

我有访问Linux变量的Java程序(例如$VARD,我也导出了变量),我使用Runtime.getRuntime("echo $VARD")函数访问变量值。问题是它打印变量名称而不是它的值。从Java程序访问Linux环境变量

注:我在Linux服务器上运行此程序,它具有JAVA JDK 1.4版本。我知道我们可以使用getenv().get()功能,可从JDK 1.5获得。

+1

请参阅http://stackoverflow.com/questions/20610080/can-we-read-the-os-environment-variables-in-java – Hagai 2014-12-19 11:44:54

+0

你可能会发现我想要的System.getProperties()? – Adem 2014-12-19 11:45:44

回答

1

一般而言,您应该使用System.getProperty()System.getEnv()

import java.lang.*; 

public class SystemDemo { 

    public static void main(String[] args) { 

    // prints Java Runtime Version before property set 
    System.out.print("Previous : "); 
    System.out.println(System.getProperty("java.runtime.version")); 
    System.setProperty("java.runtime.version", "Java Runtime 1.6.0"); 

    // prints Java Runtime Version after property set 
    System.out.print("New : "); 
    System.out.println(System.getProperty("java.runtime.version")); 
    } 
} 

import java.util.Map; 

public class EnvMap { 
    public static void main (String[] args) { 
     Map<String, String> env = System.getenv(); 
     for (String envName : env.keySet()) { 
      System.out.format("%s=%s%n", 
           envName, 
           env.get(envName)); 
     } 
    } 
} 

如果您正在使用maven还有另一种选择。您可以使用${env.VARIABLE_NAME}从maven访问环境变量。

+0

1.程序用于访问预定义的属性值 – 2014-12-19 17:17:18

+0

第二个程序将仅在JDK 1.5及更高版本上执行... – 2014-12-19 17:17:50