从java里面调用node.js脚本

时间:2013-01-11 09:48:35

标签: java node.js console

如何调用java中的node.js并将console.log值保存在String变量中?

5 个答案:

答案 0 :(得分:9)

检查这些允许您在jvm

中运行node.js脚本的项目

答案 1 :(得分:4)

Java应用程序可以与正在运行的Node.JS应用程序进行通信。例如,您可以在可用端口上运行Node.JS应用程序,Java应用程序可以通过tcp套接字与它通信。

http://nodejs.org/api/net.html

或者您可以创建一个http服务器并公开您的Java应用程序可以使用的休息服务。

http://nodejs.org/api/http.html

或者如md_5所说,您可以使用Runtime.exec,然后在生成的进程上调用getInputStream。

http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

您可以在node.js和Java之间进行通信的方式与可以完成的其他跨应用程序通信没有什么不同。

也可以使用node-java之类的东西从Node.JS应用程序调用Java代码。

https://github.com/nearinfinity/node-java

答案 2 :(得分:0)

不能完成。对于普通的JS,您可以使用Rhino,但是对于Node,您需要确保它在PATH中,然后使用ByteArrayOutputsreams调用Runtine.exec或ProcessBuilder,稍后可以将其转换为字符串。节点代码无法访问Java,反之亦然。

答案 3 :(得分:0)

是的,使用java执行和使用node.js文件非常有意义。

import java.io.FileReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class RunScriptFileDemo {
  public static void main(String[] args) {
      ScriptEngineManager manager = new ScriptEngineManager();
      ScriptEngine engine = manager.getEngineByName("js");
      try {
         FileReader reader = new FileReader("yourFile.js");
         engine.eval(reader);
         reader.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

答案 4 :(得分:0)

查看https://github.com/caoccao/Javet,你可以在java中嵌入一个node.js运行时 应用程序并在两者之间共享变量。