1

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

注意:我在具有 JAVA JDK 1.4 版本的 Linux 服务器上运行该程序。我知道我们可以使用getenv().get()JDK 1.5 提供的功能来做到这一点。

4

1 回答 1

1

一般来说,您应该使用System.getProperty()or 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,还有另一种选择。您可以使用 .maven 从 Maven 访问环境变量${env.VARIABLE_NAME}

于 2014-12-19T11:52:24.273 回答