在java中获取环境变量的更新副本

时间:2016-08-31 06:20:40

标签: java environment-variables

我想使用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"));

1 个答案:

答案 0 :(得分:1)

环境变量在JVM启动时设置,不会更改。

对于所有Windows程序通常都是如此。例如。启动命令提示符,通过Windows控制面板更改环境变量,命令提示符将查看更改的值。

在之后只有命令提示打开,更改才会看到更改。