【问题标题】:terminal context not updating in nodejs child process终端上下文未在 nodejs 子进程中更新
【发布时间】:2021-06-09 15:39:04
【问题描述】:

该程序的一部分检查是否安装了 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 node.js terminal child-process


    【解决方案1】:

    虽然我确实找到了检测是否已安装 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
    
    });
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2013-01-31
      • 2019-06-08
      • 2016-10-25
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2023-03-07
      相关资源
      最近更新 更多