【问题标题】:How to build a communication between nodejs and java?如何在nodejs和java之间建立通信?
【发布时间】:2026-01-31 15:30:02
【问题描述】:

我有 Foo.java 文件

package mypack;
class Foo {
  public int add (int a, int b) {
    return a+b;
  } 
}

还有一个 Bar.java

package mypack;
class Bar {
  public static void main (String args[]) {
    Foo instance = new Foo();
    System.out.println(Foo.add(2, 3));
  }
}

我有一个 server.js 文件,我在其中使用 shelljs 读取输出并在终端 shell 中打印。

var shelljs = require('shelljs');

shelljs.exec('java -cp bin mypack.Bar', function (code, output) {
   console.log(output);
});

当我运行node server.js 我得到了输出

5
5

第一个由 java print 语句打印,而第二个由 nodejs 控制台语句打印。 我的问题是如何修改 java 输出,使其只能由节点读取而不打印在 shell 中? 所以,我只得到节点控制台语句的输出。

【问题讨论】:

    标签: node.js io


    【解决方案1】:

    看起来有一个silent 选项告诉它不要将程序输出打印到控制台:

    shelljs.exec('java -cp bin mypack.Bar', {silent: true}, function (code, output) {
       console.log(output);
    });
    

    看看documentation

    【讨论】: