System属性和环境变量之间的区别是什么

时间:2010-05-19 07:45:46

标签: java environment-variables classpath system system-properties

我不清楚这一点。当我在applet查看器中运行Java App或运行Applet时(在IDE环境中),System.getProperty("java.class.path")给我与System.getenv("CLASSPATH")相同,这是我的env变量中定义的CLASSPATH。

但是当我将我的applet部署到webserver并从与客户端相同的计算机访问它时,我得到了两个不同的结果。 (System.getProperty("java.class.path")仅指向JRE home,System.getenv("CLASSPATH")返回null。

以下是其他一些令我惊讶的事情:

对于applet部分,env var JAVA_HOME,在浏览器和Applet Viewer中部署applet时得到的结果相同。

如果我在系统级别定义一个env变量,并使用getenv("envName"),则结果为null。无论如何我可以定义一个并在我的Java程序中获取它吗?

2 个答案:

答案 0 :(得分:39)

环境变量特定于操作系统。属性仅限JVM。

答案 1 :(得分:24)

System.getProperty("Propertname") **Platform Independent** 

上述方法将返回JVM参数和属性。

System.getenv("EnvName")       **Platform Dependent**

上述方法返回操作系统environment变量。

在Linux中,您可以使用以下方法从shell设置环境变量 命令。

export SYSTEM_TYPE=PROD

在Java中,您可以通过

读取变量
System.getenv("SYSTEM_TYPE")

以上代码将返回PROD

http://javarevisited.blogspot.in/2012/08/how-to-get-environment-variables-in.html