Nodejs调用jar并输入
需求
调用.jar文件,并且模仿bash输入,如下图
模仿cmd输入java -jar testKeyAuth.jar,并且输入参数,如3。
问题
- 无法通过’java -jar testKeyAuth.jar 3’这条命令来输入第一个参数,如下图
我在后面输入3,这个输入项并没有在程序中体现 - nodejs如何执行java -jar命令
如何粗暴的解决问题
照着文档上的抄
1 | const { spawn } = require('child_process'); |
通过spawn来运行命令,那么问题来了,如何输入呢?
简单粗暴的方法就是通过stdin.write这个流来进行写。如下代码:
1 | setTimeout(function(){ |
这代码的意思就是200毫秒后输入3回车,400毫秒后输入回车。
总结
没找到更好的方式来优雅的输入参数,讲道理应该修改jar包才对,然后通过’java -jar testKeyAuth.jar 3’这种方式输入,但是没有源代码,所以无法修改,只能用定时器的方式模拟,nodejs的写流还挺方便的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jianqiao0313!
评论