这个问题的答案不仅限于
System.getenv()Java。
仅在启动进程时,环境变量才在进程树中。Eclipse是Shell的子进程,因此,它继承了 启动Eclipse时 在Shell上定义的所有环境变量。
启动Eclipse 之后, 您可能在shell上定义了环境变量。因此,Eclipse及其创建的子Java进程将永远不会“知道”您的新环境变量。
由于这种行为,实际上,这里的解决方案是退出Eclipse,然后从 已经定义
了环境变量的Shell中再次启动它。另一种选择是转到项目的运行配置并在其中定义环境变量。
聚苯乙烯
显然,如果重新启动计算机,则仅在您定义了变量的shell进程消失后,将不会保存在shell上定义的环境变量。
如果使用 bash ,则通过将环境变量设置命令添加到文件
~/.bashrc
中(每次启动bash进程都会执行该命令),可以模拟永久环境变量的行为。还有其他方法可以定义永久性环境变量。您可以在这里查看更多信息。



