当前位置: 首页 > 面试题库 >

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

易宏阔
2023-03-14
问题内容

我正在构建在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);
})


 类似资料:
  • 问题内容: 我的网络托管人员说ImageMagic已预安装在服务器上。我在phpinfo()的输出中快速搜索了“ ImageMagick”,却一无所获。我无法在服务器中使用SSH,因此PHP中是否可以验证安装? 问题答案: 尝试这个:

  • 问题内容: 在运行之前,我需要检查是否已安装“ mocha”。我想出了以下代码: 我不喜欢这个例外。有没有更好的办法? 问题答案: 您应该使用而不是。如果找到将加载库,但不会加载,它将返回模块的文件名。 请参阅文档以了解require.resolve 如果未找到模块,则require.resolve()会引发错误,因此您必须对其进行处理。

  • 我按照这里的步骤:https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project安装艾特莱森SDK用于JIRA插件开发。 令我惊讶的是,当我运行“atlas run”时,JIRA启动了。我想知道SDK是否在安装过程中安装了JIRA? 之所以这么问,是因为

  • 我有点被这个函数的名字搞糊涂了。为什么不只是?它没有验证的是什么?如果我使用这个函数,它还能在某些情况下抛出吗?我能不能以某种方式“尝试添加”而不得到任何异常,并且如果失败时只返回false? 编辑:我认为这两个问题是相互对立的。如果我用调用,它实际上是添加了无效的头,还是如果它们无效就返回false?

  • 问题内容: 检查软件包是否在Python脚本中安装的好方法是什么?我知道从解释器很容易,但是我需要在脚本中完成。 我想我可以检查安装过程中在系统上是否创建了目录,但是我觉得有更好的方法。我试图确保已安装Skype4Py软件包,如果没有,我将安装它。 我完成支票的想法 检查典型安装路径中的目录 尝试导入软件包,如果抛出异常,则安装软件包 问题答案: 如果您的意思是python脚本,请执行以下操作:

  • 我从Google Play Store下载了一些Android APK文件(有1个、有2个和手动),但没有得到关于proguard用法的确切提示。 有没有办法知道哪个Android APK文件在反向工程代码中使用了proguard? 在APK文件的一些代码中,类名类似于a、b、c、d,它们的包名也是相同的。反编译后的代码结构非常复杂,不易理解。 一些APK文件具有易于格式化的代码。它们的反编译代码