从Java程序访问Linux环境变量

从Java程序访问Linux环境变量,java,linux,jdk1.4,Java,Linux,Jdk1.4,我有访问Linux变量的Java程序(例如$VARD,我也导出了变量),我使用Runtime.getRuntime(“echo$VARD”)函数访问变量值。问题是它打印变量名而不是它的值 注意:我在Linux服务器上运行这个程序,它有JavaJDK1.4版本。我知道我们可以使用JDK 1.5中提供的getenv().get()函数来实现这一点。通常,您应该使用System.getProperty()或System.getenv() import java.util.Map; 公共类环境映射{

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


注意:我在Linux服务器上运行这个程序,它有JavaJDK1.4版本。我知道我们可以使用JDK 1.5中提供的
getenv().get()
函数来实现这一点。

通常,您应该使用
System.getProperty()
System.getenv()


import java.util.Map;
公共类环境映射{
公共静态void main(字符串[]args){
Map env=System.getenv();
for(字符串envName:env.keySet()){
System.out.format(“%s=%s%n”,
我的名字,
env.get(envName));
}
}
}

如果您使用的是maven,那么还有另一种选择。您可以使用
${env.VARIABLE\u NAME}

从maven访问环境变量。请看,您可能会找到我想要的System.getProperties()?1。程序用于访问预定义的属性值
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));
        }
    }
}