2011-07-01 4 views
0

私はEclipseにJavaコードを書いており、ワークベンチにボタンを埋め込んだプラグインを開発しています。このボタンをクリックすると、バッチファイル(c:/program file/prism 4.0/binにあります)が開きます子プロセスのJavaでの出力の書き方

コードは.batファイルを正常に開きます!しかし、私の次の作業は、そのバッチファイルの出力をコンソールに書き込むことです。バッチファイルは、標準エラーに書き込まれている場合、あなたのJavaプログラムがそれ以外の場合は、それを消費しなければならないこと

..... 
Process p = pb.start(); 

BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 

String in; 
while((in = input.readLine()) != null) { 
    out.println(in); 
} 

int exitVal = p.waitFor(); 
..... 

注:私は、Eclipse IDEのバージョンを使用しています3.

私のコードは

MessageConsoleStream out = myConsole.newMessageStream(); 
     out.println("We are on console ! \n Shubham performed action"); 


try { 

     ProcessBuilder pb=new ProcessBuilder("C:\\Program Files\\prism-4.0\\bin\\prism.bat"); 
     pb.directory(new File("C:\\Program Files\\prism-4.0\\bin")); 
     Process p=pb.start(); 

     int exitVal=p.waitFor();    

     out.println("Exited with error code "+exitVal+" shown and action performed \n"); 

      out.println("Shubham Process Successful"); 
      out.println("Printing on console"); 

     } 
     catch (Exception e) 
     { 
      out.println(e.toString()); 
      e.printStackTrace(); 

     } 
    } 
+2

ここで質問がありますか? –

+0

この宿題はありますか?本当の質問をしてください&あなたの質問にもっと明白なタイトルを与えてください! – greydet

答えて

0

は次のように行いますですp.waitFor()は返されません。

+0

ありがとうありがとう:)) –

+0

この質問に対する答えを教えてください。 http://stackoverflow.com/questions/6896101/java-how-to-access-file-path-from-preference-page- and-in-programming-cod/6898143#6898143 –

0

あなた自身に大きな好意を持って、http://commons.apache.org/exec/をチェックしてください。タイムアウト、入出力の処理、コマンドラインを作成することさえ容易になり、エラーが起こりにくくなります。

+0

このリンクで何か答えを教えてもらえますか? http://stackoverflow.com/questions/6896101/java-how-to-access-file-path -from-preference-page-use-in-programming-cod –

0

プロセスのInputStreamから正しく読み込むには、別のスレッドで実行する必要があります。 this similar questionを参照してください。

+0

お返事ありがとうございます。しかし、私はInputStream()を使用しました –

+0

あなたは[Process.getInputStream()](http://download.oracle.com/javase/1.4.2/docs/api/java)を使って 'Process'から' InputStream'を得ることができます。 /lang/Process.html#getInputStream())または[Process.getErrorStream()](http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html#getErrorStream() ))。いずれの場合も、別々のスレッド上の出力を[Process.waitFor()](http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process)に出力する必要があります.html#waitFor())をオンにします。 – sudocode

+0

このリンクで何か答えを教えてもらえますか http://stackoverflow.com/questions/6896101/java-how-to-access-file-path-from-preference-page-and-use-it-in-プログラミングコード –

関連する問題