需要在java中获取另一个java.exe版本

时间:2016-04-23 06:12:22

标签: java

我正在使用以下代码来打印java.exe的版本。 (此java.exe不是当前运行的java.exe)。我不知道为什么,它不起作用。

{{1}}

1 个答案:

答案 0 :(得分:4)

试试这个

List<String> commands = new ArrayList<String>();
commands.add("C:\\Program Files\\Java7\\jdk1.7.0_79\\bin\\java.exe");
commands.add("-version");
ProcessBuilder pb = new ProcessBuilder(commands);
        // pb.directory(new File("C:\\Program Files\\Java7\\jdk1.7.0_79\\bin"));
Process p = pb.start();
int errCode = p.waitFor();
System.out.println(errCode);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String s = null;
while ((s = stdInput.readLine()) != null) {
            System.out.println(s);
        }
  

java -version的输出被发送到错误流 - 从中​​读取   该流应该导致正确的输出

输出:

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)