[英]Communicate with Embedded JAR File
在Node.js中,我需要運行JAR文件並因此創建一個子進程:
var cp = require('child_process');
var child = cp.spawn('.../java.exe', ['-jar', 'C:/test.jar']);
child.stdout.on('data', function(data) {
console.log(data.toString());
});
child.stderr.on('data', function(data) {
console.log('Error: ' + data.toString());
});
我嘗試使用child.stdin.write('test test');
將數據發送到子進程,但這就是我遇到的問題–我不知道如何在Java程序中獲取此數據。
我嘗試了以下方法:
public static void main(String[] args) {
System.out.println("Waiting for input");
Scanner s = new Scanner(System.in);
String resp = s.nextLine();
System.out.println("Input got: " + resp);
}
...以及初始化DataInputStream(System.in)
,但可惜。 我在Node.js中看到“等待輸入”這一行,但似乎我在聽System.in
來吠叫錯誤的樹。
我如何獲得從Node.js發送的帶有child.stdin.write()
和child.stdin.end()
? 提前致謝!
System.in
是正確的,錯誤是我忽略了一個非常容易忘記的細節:
必須在每個傳遞的消息的末尾添加\\n
,否則它不會通過。 這里的所有都是它的。
如果有人遇到同樣的問題,我想提一個問題。 關於從Java程序創建子進程的信息很多,但是關於創建將充當子進程本身的Java程序的信息不多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.