我正在尝试在我的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