2012-02-01 15 views
2

良い日皆さん、私はjavaを使ってANTスクリプトから呼び出されるプログラム(Aと呼ぶことができます)を持っています。このプログラムはRuntime.getRunTime.exec("batFile.bat")を使用します。 .batファイルが別のjavaファイルを呼び出します( 'B'と呼ぶことができます)。今、ここに問題があります。Javaプロセス間通信

BがAのインスタンス変数にアクセスできる方法はありますか?

答えて

4

プロセスAの変数の値がプロセスBを起動する前にわかっている場合は、その値をいくつかの方法で共有できます。

例えば、コマンドライン引数として渡す:Bのプロセスの環境での変数、例えばなど

String[] cmd = {"batFile.bat", variableValue}; 
Runtime.getRunTime.exec(cmd); 

セットを:

String cmd = "batFile.bat"; 
String[] envp = {"VARIABLE="+variableValue}; 
Runtime.getRunTime.exec(cmd, envp); 

プロセスA内のファイルに値を書きますプロセスBのファイルを読んでください。

+0

+1のKISSアプローチ - ちょうど値を渡したい場合は値8を渡します} – davidfrancis

5

いいえ.batファイルが新しいjvmプロセスを作成しているためです。 DBを使ってデータを共有したいかもしれません。