栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在此Java程序中读取另一个Java程序的std输出?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在此Java程序中读取另一个Java程序的std输出?

BufferedReader#readLine``null
到达流的末尾时将返回。

因为您基本上是在忽略此退出指示器并无限循环地循环,所以您得到的只是

null

可能的原因是因为该进程已向错误流输出了一些错误信息,而您没有阅读这些信息。

您应该尝试使用

ProcessBuilder
代替,这使您可以将错误流重定向到输入流中。

try {    String[] command = {"java.exe", "mytest.DDD"};    ProcessBuilder pb = new ProcessBuilder(command);    // Use this if the place you are running from (start context)    // is not the same location as the top level of your classes    //pb.directory(new File("pathtoyourclasses"));    pb.redirectErrorStream(true);    Process exec = pb.start();    BufferedReader br = new BufferedReader(new InputStreamReader(exec.getInputStream()));    String text = null;    while ((text = br.readLine()) != null) {        System.out.println(text);    }} catch (IOException exp) {    exp.printStackTrace();}

ps-如果

java.exe
您的路径有效,则可以使用,否则,您将需要提供可执行文件的完整路径,就像您在示例中已经完成的一样;)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483737.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号