我有訪問Linux變量的Java程序(例如$VARD
,我也導出了變量),我使用Runtime.getRuntime("echo $VARD")
函數訪問變量值。問題是它打印變量名稱而不是它的值。從Java程序訪問Linux環境變量
注:我在Linux服務器上運行此程序,它具有JAVA JDK 1.4版本。我知道我們可以使用getenv().get()
功能,可從JDK 1.5獲得。
我有訪問Linux變量的Java程序(例如$VARD
,我也導出了變量),我使用Runtime.getRuntime("echo $VARD")
函數訪問變量值。問題是它打印變量名稱而不是它的值。從Java程序訪問Linux環境變量
注:我在Linux服務器上運行此程序,它具有JAVA JDK 1.4版本。我知道我們可以使用getenv().get()
功能,可從JDK 1.5獲得。
一般而言,您應該使用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訪問環境變量。
1.程序用於訪問預定義的屬性值 – 2014-12-19 17:17:18
第二個程序將僅在JDK 1.5及更高版本上執行... – 2014-12-19 17:17:50
請參閱http://stackoverflow.com/questions/20610080/can-we-read-the-os-environment-variables-in-java – Hagai 2014-12-19 11:44:54
你可能會發現我想要的System.getProperties()? – Adem 2014-12-19 11:45:44