读取java exec的输出

您好,我对Java有一些疑问。这是我的代码:


public static void main(String[] args) throws Exception {

    Process pr = Runtime.getRuntime().exec("java -version");


    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));

    String line;

    while ((line = in.readLine()) != null) {

        System.out.println(line);

    }

    pr.waitFor();

    System.out.println("ok!");


    in.close();

    System.exit(0);

}

在该代码中,我尝试获取Java版本命令执行是可以的,但是我无法读取输出,只是返回null。为什么?


梵蒂冈之花
浏览 833回答 3
3回答

慕田峪4524236

使用getErrorStream()。BufferedReader in = new BufferedReader(new InputStreamReader(pr.getErrorStream()));编辑:您可以使用ProcessBuilder(也可以阅读文档)ProcessBuilder   ps=new ProcessBuilder("java.exe","-version");//From the DOC:  Initially, this property is false, meaning that the //standard output and error output of a subprocess are sent to two //separate streamsps.redirectErrorStream(true);Process pr = ps.start();  BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));String line;while ((line = in.readLine()) != null) {    System.out.println(line);}pr.waitFor();System.out.println("ok!");in.close();System.exit(0);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java