为什么我不能从这个终端获得输入和输出?

时间:2011-09-12 14:44:30

标签: java terminal

这是代码:它成功打开一个终端,但输出中没有显示

try {
    String command= "/usr/bin/xterm";
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec(command);
    BufferedWriter os = 
        new BufferedWriter(new OutputStreamWriter(pr.getOutputStream()));
    BufferedReader is = 
         new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String line = "";

    while ((line = is.readLine()) != null) {
        System.out.print(line);
    }

} catch (Exception io) {    
}

2 个答案:

答案 0 :(得分:3)

  1. 不要写空的catch块。这只是错误,它将花费你很多小时的调试,之后你会觉得......不够完美。
  2. xterm默认不生成输出。它只显示一个窗口。尝试在终端中启动xterm并查看它产生的输出(在原始终端中,而不是在新窗口中!)。
  3. 阅读When Runtime.exec() won't并按照所有的建议进行操作。

答案 1 :(得分:1)

您是否阅读过When Runtime.exec() won't。如果您阅读整篇文章,您将避免并理解exec命令的许多缺陷。

然后你可以阅读ProcessBuilder,这是一种更现代的方式来调用其他进程。

聚苯乙烯。空catch块吞下异常并使其更难调试。