Java 过程:什么是环境?

Java Process: What is the Environment?

我正在阅读:

http://docs.oracle.com/javase/8/docs/api/java/lang/ProcessBuilder.html

哪个链接到

http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getenv--

其中指出 System.getEnv() returns:

Returns an unmodifiable string map view of the current system environment. The environment is a system-dependent mapping from names to values which is passed from parent to child processes.

我不确定我是否理解这句话。映射的名称-值是什么?是我的程序定义的变量和支持它所需的 java 运行时吗?为什么它们很重要?

根据您的操作系统(因此 系统相关),您可以通过多种方式设置这些环境变量。

在 Windows 您可以使用例如"System properties" window 中的 "Environment variables" 按钮添加、删除或修改环境变量。

告诉我们您的情况 OS,您可能会获得更多信息。

这些变量很重要,因为它们是对流程进行参数化的一种方式(或稍微不准确 "your programs")。

通常,当一个进程产生另一个子进程时,您可以选择让子进程继承这些变量(作为一种 "starting point")。

使用Map<String, String> env = System.getenv();你得到一个环境变量的映射;不过,它们与您在程序中定义的变量无关。