Java内でnode.jsを呼び出して、console.log値を文字列変数に保存するにはどうすればよいですか?
5 に答える
jvm内でnode.jsスクリプトを実行できるこれらのプロジェクトを確認してください
- https://github.com/apigee/trireme (アピジー)
- http://nodyn.io/ (レッドハット)
- https://avatar-js.java.net/ (オラクル)
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/caoccao/Javetを確認してください。Java アプリケーション内に node.js ランタイムを埋め込んで、両者の間で変数を共有できます。
できません。通常の JS では Rhino を使用できますが、Node ではそれが PATH にあることを確認してから、後で文字列に変換できる ByteArrayOutputsreams を使用して Runtine.exec または ProcessBuilder を呼び出す必要があります。ノード コードは Java にアクセスできず、その逆も同様です。