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

Khu*_* Vu 35 java system classpath environment-variables system-properties

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

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

还有一些令我惊讶的事情:

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

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

Kon*_*rus 43

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


Yuv*_*han 25

System.getProperty("Propertname") **Platform Independent** 
Run Code Online (Sandbox Code Playgroud)

上面的方法将返回JVM参数和属性.

System.getenv("EnvName")       **Platform Dependent**
Run Code Online (Sandbox Code Playgroud)

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

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

export SYSTEM_TYPE=PROD
Run Code Online (Sandbox Code Playgroud)

在Java中,您可以通过读取变量

System.getenv("SYSTEM_TYPE")
Run Code Online (Sandbox Code Playgroud)

上面的代码将返回 PROD

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