2011-10-17 10 views
0

実行時に別のJavaプログラムを実行できるJavaプログラムを作成しました。プログラムは次の通りですあるJavaプログラムから別のJavaプログラムへ値を渡す

import java.io.*; 
public class exec 
{ 
public static void main(String argv[]) 
{ 

int i=5,j=6,k=7; 
BufferedReader rd = new BufferedReader (new InputStreamReader(System.in));  
try{ 
InputStreamReader isr=new InputStreamReader(System.in); 
BufferedReader br=new BufferedReader(isr); 
System.out.println("Enter class name"); 
String s=br.readLine(); 

Process pro=Runtime.getRuntime().exec(s); 

BufferedReader in=new BufferedReader(new InputStreamReader(pro.getInputStream())); 
String line=null; 
while((line=in.readLine())!=null) 
{ 
System.out.println(line); 
} 
in.close(); 
} 
catch(Exception err) 
{ 
err.printStackTrace(); 
} 
} 
} 

このプログラムを実行すると、実行するクラス名(Javaプログラム)を入力するように求められます。これは、このコードを使用して行われていますProcess pro=Runtime.getRuntime().exec(s);

ユーザーがJavaクラス名を入力すると、ユーザーが入力したJavaクラスに値5,6,7を渡すことができます。一度に1つの値だけを渡す必要があり、その数の2乗を計算する必要があります。 どうすればいいですか?

+1

)は、特定の質問をします。 2)[Runtime.exec()が実行されない場合](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)のすべての推奨事項を読み、実行します。3)使用'ProcessBuilder'(1.5+を対象としたコード用)4)他のJavaクラスをコードから直接呼び出すことを考慮してください(プロセスには関係ありません)。5)通常の規則に従ってコードをインデントします。コードの字下げは読者を助けることを目的としており、そのコードは犬の朝食のように表示されます。 –

+0

@AndrewThompsonもしあなたがその質問を理解できなかったら、すみません。私は質問を編集しようとしました。それを今行って、これを行う方法を教えてください。 – Anil

答えて

3

次のようにあなたはあなたの第二のJavaプログラムにint型の引数を渡すことができます。

String[] cmd = { s, Integer.toString(n) }; 
Process pro=Runtime.getRuntime().exec(cmd); 

...または単一Stringなどを:

Process pro=Runtime.getRuntime().exec(String.format("%s %d", s, n); 
+0

私はこれを試しましたが、どのように私は呼び出しているJavaクラスのnの値を処理する必要があります。私はこのようにして 'import java.io. *; public class Test { public static void main(String [] args)throws IOException { バッファドリーダーrd = new BufferedReader(new InputStreamReader(System.in)); 文字列ns = rd.readLine(); int n = Integer.parseInt(ns); \t System.out.println( "数値の正方形は" + n * n)です。 } } '。コマンドライン引数として 'n'の値を読みますか? – Anil

+1

引数nはargs [0]からStringとしてアクセスできます。つまり、それをintに再解析する必要があります。 – Adamski

+0

ありがとうございました。わかった。 – Anil

1

あなたがサーバーを実装することができ、第2のプログラムで最初のプログラムでは、2番目のアプリケーションにメッセージを送るClient Socketを書くことができます。

あなたは、次のドキュメントを参照することができます:「?誰もがこれを行う方法を教えてくださいすることができ、」*あなたは1を喜ばせることができます* http://download.oracle.com/javase/tutorial/networking/sockets/

関連する問題