Java内でnode.jsを呼び出し、console.logの値を文字列変数に保存するにはどうすればよいですか?
Javaアプリケーションは、実行中のNode.JSアプリケーションと通信できます。たとえば、Node.JSアプリを利用可能なポートで実行すると、Javaアプリはtcpソケット経由で通信できます。
http://nodejs.org/api/net.html
または、httpサーバーを作成して、Javaアプリが使用できるRESTサービスを公開することもできます。
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コードを呼び出すことも可能です。
Jvm内でnode.jsスクリプトを実行できるようにするこれらのプロジェクトを確認してください
できません。通常のJSの場合はRhinoを使用できますが、Nodeの場合はPATHにあることを確認してから、後で文字列に変換できるByteArrayOutputsreamsでRuntine.execまたはProcessBuilderを呼び出す必要があります。ノードコードは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();
}
}
}