我该如何在Java中调用Node.js,并将console.log的值保存到一个String变量中?
查看这些项目,它们允许你在jvm中运行node.js脚本
Java 应用程序可以与正在运行的 Node.JS 应用程序进行通信。例如,您可以在可用端口上运行一个 Node.JS 应用程序,并且 Java 应用程序可以通过 tcp 套接字与其通信。
http://nodejs.org/api/net.html
或者您可以创建一个 http 服务器,并公开一个 REST 服务,供 Java 应用程序使用。
http://nodejs.org/api/http.html
或者如 md_5 所说,您可以使用 Runtime.exec,然后调用 resulting process 上的 getInputStream。
http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html
Node.js 和 Java 之间的通信方式与其他跨应用程序通信方式没有什么不同。
还可以使用类似 node-java 的工具从您的 Node.JS 应用程序中调用 Java 代码。
是的,使用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();
}
}
}
无法完成。对于普通的JS,您可以使用Rhino,但对于Node,您需要确保它在PATH中,然后调用Runtine.exec或具有ByteArrayOutputsreams的ProcessBuilder,稍后可以将其转换为字符串。节点代码无法访问Java,反之亦然。