系统属性和环境变量有什么区别

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

I am not clear about this. When I run a java App or run an Applet in applet viewer, (in the IDE environment), System.getProperty("java.class.path") gives me the same as System.getenv("CLASSPATH") which is the CLASSPATH defined in my env variable.

但是当我将我的小程序部署到网络服务器并从作为客户端的同一台计算机访问它时,我会得到两者不同的结果.(System.getProperty("java.class.path") 只指向 JRE home 并且 System.getenv("CLASSPATH") 返回 null).

But when I deploy my applet to webserver and access it from the same computer as a client, I get different results for the two. (System.getProperty("java.class.path") only points to JRE home and System.getenv("CLASSPATH") returns null).

还有一些让我想知道的其他事情:

And here is some other things that make me wonder:

对于小程序部分,env var JAVA_HOME,我在浏览器和小程序查看器中部署小程序时得到相同的结果.

For the applet part, the env var JAVA_HOME, I get the same result when deploying the applet in a browser as well as Applet Viewer.

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

And if I define myself a env variable at system level, and use getenv("envName") the result is null. Is there anyway I can define one and get it in my Java program?

推荐答案

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

Environment variables are specific to the operating system. Properties are JVM only.

相关文章