我目前正在开发一个使用socket.io与node.js通信的Java系统。系统和脚本位于同一服务器上。如何从我的Java代码中执行脚本并从我的应用程序中保持活动状态?
答案 0 :(得分:4)
假设您有一个名为“mynodejs.js”的node.js脚本。您可以使用以下java代码:
Process p = Runtime.getRuntime().exec("node mynodejs.js");
或
ProcessBuilder b = new ProcessBuilder("node mynodejs.js", "-args");
答案 1 :(得分:2)
注意使用流程构建器时,JavaScript文件的路径是参数和"节点"是命令,因此它们需要分开:
ProcessBuilder pb = new ProcessBuilder("node", "app.js");
这对于继承其控制台输出,启动流程并获取对流程的引用也很有用:
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
Process p = pb.start();
答案 2 :(得分:1)
查看ProcessBuilder
课程。
如果我能正确理解您的问题,您可以像在shell上一样启动计算机上的任何流程。