为了账号安全,请及时绑定邮箱和手机立即绑定

读取java exec的输出

读取java exec的输出

梵蒂冈之花 2019-10-21 14:33:46
您好,我对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。为什么?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

使用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 streams

ps.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);


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 832 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信