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

发布于 2024-12-07 01:37:12 字数 335 浏览 0 评论 0原文

关于该主题,下面的代码


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


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

从 Ubuntu 运行终端。

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

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

Regarding the topic, the code below


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


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

Runs the terminal form Ubuntu.

How do I issue commands into the terminal after running the termnal?

eg: running the terminal and run command such as "ls" etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巨坚强 2024-12-14 01:37:12

你可以在命令行上给 gnome-terminal 一些选项,让它执行什么。

gnome-terminal -e /my/fortran/program

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

-e-x 都使用可选参数运行程序,同时将程序的标准输入和输出连接到终端。这样用户就可以与终端正常交互。

示例:

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

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

在 Java 中,您必须将参数适当地分割成一个数组,如下所示:

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

You can give gnome-terminal some options on the command line what it shall execute.

gnome-terminal -e /my/fortran/program

The -x option gives you roughly the same benefit but you can split the commandline into separate words.

Both -e and -x run the program with optional arguments while connecting the program`s standard input and output to the terminal. So the user can interact with the terminal properly.

Example:

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

This will open the terminal and run the "program" bash. bash will get two arguments: -c and ls; echo ....; read. The -c option makes bash parsing and executing the next argument. This will call ls, then echo ... then read which waits for the return key.

In Java you must split the arguments appropriately into an array like this:

String cmd[] = {"gnome-terminal", "-x", "bash", "-c", "ls; echo '<enter>'; read" };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文