终端上下文未在nodejs子进程中更新

terminal context not updating in nodejs child process

这个程序的一部分检查是否安装了 java 并继续每两秒检查一次,然后在安装后继续,我如何让它更新终端上下文以便能够执行 java 命令而不重新启动程序本身?

var javaCheckLoop = setInterval(function(){

    checkJava(function(res){

        if(res){
            //java installed, continue
        } else {
            //java not found, keep checking
        }

    })

},2000)


function checkJava(callback) {

    //need terminal context to update so it can detect java
    var c = require('child_process').exec('java', (error, stdout, stderr) => {

        callback(stderr.includes("Usage")); //returns true if java is available via cmd

    });

};

虽然我确实找到了检测是否安装了 java 的方法,但我没有找到更新终端上下文的方法。我之前试图将 java 作为命令生成,但诀窍在于注册表,它实时更新并可用于检测是否已安装 java。

require('child_process').exec('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"', (error, data) => {

            callback(String(data).includes("javapath")); //returns true if javapath is present in the environment variables

});