java - 验证是否从 Node.js 安装了 Java

标签 java javascript node.js

我正在构建一个在 Node.js 中使用 Java 的应用程序。我做了一个函数来检查 Java 版本:

function javaversion() {
    var spawn = require('child_process').spawn('java', ['-version']);
    spawn.stderr.on('data', function(data) {
        data = data.toString().split('\n')[0];
        var javaVersion = new RegExp('java version').test(data) ? data.split(' ')[2].replace(/"/g, '') : false;
        if (javaVersion != false) {
            // TODO: We have Java installed
        } else {
            // TODO: No Java installed
        }
    });
}

但对于未安装 Java 的系统,Node.js 会抛出 ENOENT 错误,因为模块“child_process”无法生成进程。如何验证是否从 Node.js 安装了 Java?

感谢您的帮助!

最佳答案

这个呢?

function javaversion(callback) {
    var spawn = require('child_process').spawn('java', ['-version']);
    spawn.on('error', function(err){
        return callback(err, null);
    })
    spawn.stderr.on('data', function(data) {
        data = data.toString().split('\n')[0];
        var javaVersion = new RegExp('java version').test(data) ? data.split(' ')[2].replace(/"/g, '') : false;
        if (javaVersion != false) {
            // TODO: We have Java installed
            return callback(null, javaVersion);
        } else {
            // TODO: No Java installed

        }
    });
}

javaversion(function(err,version){
    console.log("Version is " + version);
})

关于java - 验证是否从 Node.js 安装了 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734477/

相关文章:

java - 企业 Java Webstart 分发 : use site-wide accepted certificate to sign a code-signing certificate

javascript - 无法将路由从 react-router v3 转换为 v4

javascript - 如何在 Node.js 中捕获 * 并忽略 * SIGINT?

javascript - 使用 ng-init 时复选框选择丢失

c++ - Node 插件 (OSX) 中的 GraphicsMagick 代码卡住

javascript - 如何将 props 传递给 Material-ui 风格的组件?

java - 为 hashmap 实现基于时间的队列

java - 独立 Java 应用程序中的 JVM 集群

java - Jenkins 和生产服务器的不同 Log4J 配置

javascript - 我的 ng-click 和 ng-if 在托管后不起作用