- ベストアンサー
Runtime クラスのexecメソッドについて
javaで、Runtimeのexec()メソッドを使って、出てきた内容をJTextAreaに出力したいと思っています。つまり、JTextAreaをコマンドプロンプト風にしたいと思っています。しかし、exec()メソッドの戻り値である、Processクラスがいまいちよくわかりません。仕様書(日本語訳)を読んでもProcessクラスのgetInputStream()メソッドやgetOutputStream()メソッドの説明がいまいちピンときません。 try{ Process process = Runtime.getRuntime().exec("hogehoge"); /*---------------------------------------------------------*/ ここで、いかにしてJTextAreaに出力するのかわかりません /*---------------------------------------------------------*/ }catch(Exception e){ } どうか、わかる方よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
補足
お答えありがとうございます。プログラムの処理の流れがわかって、非常にうれしいです。しかし、どうもうまくいかないことがあるんです。 process.getInputStream()ではInputStream を得ることができましたが、 process.getErrorStream()ではInputStream を得ることができません。 /* 1 try{ 2 Process process ; 3 process = Runtime.getRuntime().exec("*****"); 4 process.getInputStream(); 5 process.getErrorStream(); 6 }catch(Exception e){ 7 System.out.println("Error"); 8 } */ このとき*****の値が例えば、"java"とすれば、Command Promptで"java"と、入力したように、javaコマンドのヘルプが表示することができたのですが、 *****の値を"tekitou"(適当)にした場合、「コマンドまたはファイル名が正しくありません」と表示されるのを期待しているのですが、3行目で例外処理が行われてしまうため、process.getErrorStream でInputStreamを取得することができません。 また、*****の値を"dir"としても、例外処理が発生してしまい、ディレクトリ情報を取得することができません。 いったいどのように、すれば、process.getErrorStreamで、InputStreamを取得することができるのでしょうか? どうか、教えてください。