2013-01-11 16 views

答えて

3

Javaアプリケーションが実行中のNode.JSアプリケーションと通信することは可能です。例えば、利用可能なポート上でNode.JSアプリを実行させることができ、Javaアプリはtcpソケットを介して通信することができます。

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

それとも、httpサーバを作成し、Javaアプリケーションが消費できるRESTサービスを公開することができます。 md_5が言うように

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

それとも、あなたはの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

+0

私は、exec(...)Runtime.getRuntime()を使用してjshintを呼び出してみましたが、私は例外を得続ける:。にjava.io.IOException:番組 "jshint" のCreateProcessエラー= 2、システムを実行することはできません指定されたファイルが見つかりません。 通常のコマンドラインからは問題ありませんが、問題はありません。( –

+0

あなたは実行中のnode.jsアプリケーションとの接続について言及しましたが、これはそうではありません。 @Somatikによって言及されたjvm内の.jsアプリケーション –

+0

この回答は完全に無関係です、なぜそれが票を持っているのだろうと思いますか? – Willa

0

することができます。通常のJSの場合はRhinoを使用できますが、Nodeの場合はPATHにあることを確認してから、Runtine.execまたはByteArrayOutputsreamsを持つProcessBuilderを呼び出して、後で文字列に変換できます。ノードコードはJavaにアクセスできず、その逆もありません。

0

はい、 ry eassyは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

これはNode.jsプログラムを実行せず、単純なjavascriptプログラムのみを実行します。他のコメント作成者からは、Avatar.js、nodyn、またはtriremeを追加してNode.jsの機能を有効にする必要があります。 – AllenKll

関連する問題