簡體   English   中英

與嵌入式JAR文件通信

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM