我想使用 java 获取环境变量的最新/更新副本。
如果有人在运行程序后更改了特定的环境变量,Java 不会返回最新的副本。
请使用下面的示例代码来测试该场景。
import javax.swing.JOptionPane;
public class Test extends Thread {
public static void main(String[] args) {
Test test = new Test();
test.start();
}
@Override
public void run() {
super.run();
while (true) {
JOptionPane.showMessageDialog(null, System.getenv("A"));
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
更新: 也尝试过 ProcessBuilder
ProcessBuilder processBuilder = new ProcessBuilder("echo %A%");
System.out.println(processBuilder.environment().get("A"));
最佳答案
环境变量在JVM启动时设置,不会改变。
对于所有 Windows 程序来说通常都是如此。例如。启动命令提示符,通过 Windows 控制面板更改环境变量,命令提示符将看不到看到更改的值。
只有在更改之后打开的命令提示符才能看到更改。
关于java - 在java中获取环境变量的更新副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242102/