如何从Java运行UNIX终端并向其发送命令?

时间:2011-09-28 17:01:20

标签: java shell unix terminal

关于主题,下面的代码


    Process proc = null;
    try {
        String[] cmdss= {"gnome-terminal"};


        proc = Runtime.getRuntime().exec(cmdss, null, wd);
    } catch (IOException e) {
        e.printStackTrace();
    }

运行终端表单Ubuntu。

运行termnal后如何向终端发出命令?

例如:运行终端并运行命令,如“ls”等。

1 个答案:

答案 0 :(得分:2)

您可以在命令行上为gnome-terminal提供一些选项。

gnome-terminal -e /my/fortran/program

-x选项为您提供大致相同的好处,但您可以将命令行拆分为单独的单词。

-e-x在将程序的标准输入和输出连接到终端时,使用可选参数运行程序。因此,用户可以正确地与终端进行交互。

示例:

gnome-terminal -x bash -c "ls; echo '<enter>'; read"

这将打开终端并运行“程序”bashbash将获得两个参数:-cls; echo ....; read-c选项使bash解析并执行下一个参数。这将调用ls,然后调用echo ...,然后read等待返回密钥。

在Java中,您必须将参数适当地拆分为如下数组:

String cmd[] = {"gnome-terminal", "-x", "bash", "-c", "ls; echo '<enter>'; read" };