从java在终端中运行脚本

时间:2013-11-20 12:20:36

标签: java shell terminal console

我使用以下命令在java程序中运行脚本:

 Runtime.getRuntime().exec()

我可以使用此功能打开终端应用

如果我发出命令来运行脚本。它正在发生但我无法在终端中获取日志。我正在使用MAC。我想在终端中获取日志。

3 个答案:

答案 0 :(得分:1)

您可以使用Process变量从该命令获取返回值,并使用以下方法:getInputStream(),getOutputStream(),getErrorStream()。例如:

    Process p = null;
    try {
        p = Runtime.getRuntime().exec(....your stuff here)
        p.getOutputStream().close(); // close stdin of child

        InputStream processStdOutput = p.getInputStream();
        Reader r = new InputStreamReader(processStdOutput);
        BufferedReader br = new BufferedReader(r);
        String line;
        while ((line = br.readLine()) != null) {
             //System.out.println(line); // the output is here
        }

        p.waitFor();
    }
    catch (InterruptedException e) {
            ... 
    }
    catch (IOException e){
            ...
    }
    finally{
        if (p != null)
            p.destroy();
    }

答案 1 :(得分:0)

上面的方法调用返回的Process对象有getInputStream()方法(以及错误和输出流的方法)。如果你想要绘制脚本的输入和输出,你必须阅读这些内容。

供参考:http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html

答案 2 :(得分:0)

终端中的

,使用>将日志输出到文件。例如:ls /> rootfolder.txt

使用这种方式,您可以将日志输出到文件,然后从文件中读取日志。