读取Java Process输出时出现问题

时间:2017-07-14 10:50:55

标签: java processbuilder

我正在尝试在我的Java代码中运行一个进程并读取此进程的输出。问题是,当我运行该过程时,代码就会挂起。

我尝试运行的命令是: RNAplex< query.fasta

其中query.fasta是包含我希望RNAplex处理的信息的文件。

当我在终端中运行时,我得到以下输出:

  

((((((((&安培;。。。。。))))))))。 7,19:1,12(-3.30)i:18,j:1< -3.40>

     (。(((((((&安培;))))))))

。 4,14:1,10(-14.30)i:13,j:1< -14.40>

在此输出之后,该过程终止。

我用来运行的代码如下:

    Process p = Runtime.getRuntime().exec("RNAplex < query.fasta");

    BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

    p.waitFor();

    String msg;
    while ((msg = stdInput.readLine()) != null) {
        System.out.println(msg);
    }

您是否知道为什么流程没有输出?我已经使用其他命令测试了它,例如:

  

free -g

代码有效,我可以从中读取输出:

                total        used        free      shared  buff/cache      available
 Mem:            125          43          41           0          40          81
 Swap:           127           0         127

0 个答案:

没有答案