[解決済み] Java Runtime.getRuntime():コマンドライン・プログラムの実行による出力の取得
2022-04-15 03:52:35
質問
ランタイムを使用して、Javaプログラムからコマンドプロンプトコマンドを実行しています。しかし、コマンドが返す出力を取得する方法について、私は知らない。
以下は私のコードです。
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
をやってみた。
System.out.println(proc);
が、何も返ってきません。そのコマンドを実行すると、セミコロンで区切られた2つの数字が返されるはずです。どうすればこれを変数に取り込んでプリントアウトできるのでしょうか?
今使っているコードはこちらです。
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
しかし、出力として何も得られません。しかし、自分でそのコマンドを実行すると、うまくいきます。
どうすればいいですか?
ここでは、その方法を紹介します。
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(proc.getErrorStream()));
// Read the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// Read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
詳細はJavadocをお読みください
ここで
.
ProcessBuilder
を使用すると良いでしょう。
関連
-
java.util.NoSuchElementException 原因解析と解決方法
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
linux run jarfile Invalid or corrupt jarfile error.
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み] Javaでコマンドライン引数をパースするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
エラー java.util.NoSuchElementException
-
java の例外が発生しました java
-
プロジェクトの依存関係を解決できなかった 解決
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
Javaエラーメッセージがenclosingクラスでない
-
javaでよく使われる英単語
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました