【发布时间】:2010-12-22 21:19:43
【问题描述】:
我需要使用 Java 启动一个二进制文件,然后使用输入和输出流与之交互。我编写了一个原型来弄清楚它是如何工作的,但到目前为止我得到的唯一输出是null。然而,当独立运行时,子程序会产生输出。我做错了什么?
import java.io.*;
public class Stream {
public static void main(String args[]) {
Process SaddleSumExec = null;
BufferedReader outStream = null;
BufferedReader inStream = null;
try {
SaddleSumExec = Runtime.getRuntime().exec("/home/alex/vendor/program weights.txt list.txt");
}
catch(IOException e) {
System.err.println("Error on inStream.readLine()");
e.printStackTrace();
}
try {
inStream = new BufferedReader(new InputStreamReader
(SaddleSumExec.getInputStream()));
System.out.println(inStream.readLine());
}
catch(IOException e){
System.out.println("Error.");
}
}
}
【问题讨论】:
-
也许你的程序出错了,但除非你阅读它的输出(并显示它)你不会知道它是什么。我建议你使用 ProcessBuilder 来加入 err 和 out 流。
-
彼得,您能否提交您的评论作为答案,以便我接受?谢谢。
标签: java interprocess