ProcessBuilder() 是否需要一些时间才能完成?

Does ProcessBuilder() take some time to complete?

ProcessBuilder() 需要一些时间才能完成吗? 例如,一些 key 已经为您正在使用的 OS 定义。 难不成第二行执行的时候上一步还没有完成? (第二行将使用 old key

new ProcessBuilder().command("cmd.exe", "/c", "setx key abcd").start();
util.encode(); // it uses a `key` defined in previous line

这肯定需要一些时间(无论您的命令需要多少时间)。启动方法returns一个进程,你可以等待:

var process = ProcessBuilder().command("cmd.exe", "/c", "setx key abcd").start();
try {
    process.waitFor();
} catch(InterruptedException e) {
    // Handle exception
}
util.encode();

编辑:此外,尚不清楚这是否会按照您认为的方式工作。您创建的系统环境变量可能不会为您自己的 old/running 个进程设置;它很可能只适用于新的。您很快就会注意到,但如果即使等待也无法正常工作,这可能就是原因。