-1

我必须执行RegAlloc.jav带有输入重定向的程序(4.miniIR文件)

try{
    String s="java  -classpath MiniRA/ RegAlloc < MiniRA/4.miniIR";
    Process pro2 = Runtime.getRuntime().exec(s);
    BufferedReader in =new BufferedReader(new InputStreamReader(pro2.getInputStream()));
    String line = null;
    while ((line = in.readLine()) != null) {
        text+=line;
        text+="\n";
        System.out.println(text);
    }
    System.out.println(text);
  }
catch(IOException e) {
    System.out.println("not Okey");
}

但我没有得到正确的结果;输出窗口只是显示,不会终止程序。谁能帮我找出错误?

4

2 回答 2

0

你必须stdin在你的过程中阅读。但是你尝试外部进程的钩子stdin。尝试替换它:

BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
于 2013-10-03T13:02:19.253 回答
0

如果它只是关于进程没有终止,你可以pro2.destroy()在代码中使用强制终止它,在 try 块的末尾。

于 2013-10-03T12:58:58.277 回答