4

我目前正在开发一个使用 socket.io 与 node.js 通信的 Java 系统。系统和脚本在同一台服务器上。如何从我的 Java 代码执行脚本并使其在我的应用程序中保持活动状态?

4

3 回答 3

6

请注意,当使用 process builder 时,JavaScript 文件的路径是一个参数,而“node”是命令,因此它们需要分开:

ProcessBuilder pb = new ProcessBuilder("node", "app.js");

这对于继承其控制台输出、启动进程和获取对进程的引用也很有用:

pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
Process p = pb.start();
于 2016-11-04T05:29:03.813 回答
5

假设您有一个名为“mynodejs.js”的 node.js 脚本。您可以使用以下 java 代码:

Process p = Runtime.getRuntime().exec("node mynodejs.js");

或者

ProcessBuilder b = new ProcessBuilder("node mynodejs.js", "-args");
于 2013-05-22T15:39:55.270 回答
1

看看ProcessBuilder课堂。

如果我正确理解您的问题,您可以像通过 shell 一样在您的机器上启动任何进程。

于 2013-05-22T15:29:43.863 回答