如何解决Node.js child_process.exect stdout 返回 null,但 stderr 没有
目前,我有一个简单的代码,它在命令行中执行 java -version
以检查用户是否安装了 Java。
奇怪的是,当我运行这段代码时,stdout
什么也没给我,但 stderr
给了我想要的结果。
cprocess.execSync("java -version",(err,stdout,stderr) => {
console.log("stdout: " + stdout); // nothing
console.log("stderr: " + stderr); // output: java version
}
为什么会这样?我需要更改 exec
选项中的任何内容吗?
解决方法
execSync
不接受回调参数,但 exec
接受。问题的文本引用了 exec
,而您共享的代码片段引用了 execSync
,所以我猜您的意思是 exec
。
假设您真的打算使用 exec
,回调是正确的,问题不在于代码,而是您正在调用的 java -version
命令 - 该命令将信息输出到 stderr ,不是标准输出。你可以重定向它,但老实说,我不会打扰 - 你可以只使用 stderr 输出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。