我目前正在开发一个使用 socket.io 与 node.js 通信的 Java 系统。系统和脚本在同一台服务器上。如何从我的 Java 代码执行脚本并使其在我的应用程序中保持活动状态?
请注意,在使用流程构建器时,JavaScript 文件的路径是一个参数,而“node”是命令,因此它们需要分开:
ProcessBuilder pb = new ProcessBuilder("node", "app.js");
Run Code Online (Sandbox Code Playgroud)
这对于继承其控制台输出、启动进程并获取对进程的引用也很有用:
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)
假设您有一个名为“mynodejs.js”的 node.js 脚本。您可以使用以下java代码:
Process p = Runtime.getRuntime().exec("node mynodejs.js");
Run Code Online (Sandbox Code Playgroud)
或者
ProcessBuilder b = new ProcessBuilder("node mynodejs.js", "-args");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6871 次 |
| 最近记录: |