• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[JAVA]ProcessBuilderで「java -version」を実行できない)

[JAVA]ProcessBuilderで「java -version」が実行できない

このQ&Aのポイント
  • JavaのProcessBuilderを使用して「java -version」を実行できないエラーが発生する
  • プログラムの実行時にエラーが発生し、「java -version」を実行する際に問題が発生する
  • ProcessBuilderを使用してJavaのバージョンを取得する際にエラーが発生する

質問者が選んだベストアンサー

  • ベストアンサー
  • newta777
  • ベストアンサー率58% (20/34)
回答No.3

バージョン情報は標準エラー出力されるので。 p.getErrorStream(); ですね。

noname#104144
質問者

お礼

無事表示できました ーーー import java.io.*; public class test4518 { public static void main(String[] args) throws Throwable{ String command = "java -version"; ProcessBuilder pb = new ProcessBuilder(command.split(" ")); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br = new BufferedReader(new InputStreamReader(p.getErrorStream())); while ((line = br.readLine()) != null) { System.err.println(line); } } }

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

たぶん, 「java -version」の*標準出力*を読み込んで表示するという意味でプログラムは正しく動作していると思います.

noname#104144
質問者

お礼

まあそうなんですけど

回答No.1

new String[]{"java", "-version"} ではないでしょうか。

noname#104144
質問者

補足

import java.io.*; public class test4518 { public static void main(String[] args) throws Throwable{ ProcessBuilder pb = new ProcessBuilder(new String[]{"java", "-version"}); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } --- 上記で実行したところエラーはでなくなりましたが、コンソールに何もでません。ちなみにJVMのバージョンは1.5.20です

関連するQ&A