当前位置: 首页 > 面试题库 >

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

牟黎昕
2023-03-14
问题内容

关于主题,下面的代码

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


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

从Ubuntu运行终端。

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

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


问题答案:

您可以gnome-terminal在命令行中提供一些选项,以指定执行的内容。

gnome-terminal -e /my/fortran/program

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

二者-e-x同时连接program`s标准输入和输出到端子与可选参数运行该程序。因此,用户可以与终端进行正确的交互。

例:

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" };


 类似资料:
  • 问题内容: 我一直在寻找使用Java运行时运行外部程序的方法。可以正常工作,例如: 如您所愿创建一个新目录。现在,在Mac的bash窗口中,我可以这样写: 在名为testgame的文件夹上运行“ Love”游戏引擎。现在,之所以可行,是因为我将“ love”作为别名来调用love可执行文件。我有一种感觉,这是下面没有理由 不 工作: 而且(对于那些想知道的人)也不是: 毫无疑问,这要么是Java方

  • 我有一个程序,当您双击它时会运行。我想做的是: 双击 jar 文件 (只是一个例子,这不是我想做的) 我试过这个: (< code>SOME_COMMAND_HERE只是一个替换) 它没有启动终端。 (我有GUI部分,所以不需要为此编写代码) 那么我该怎么做呢?在过去的一两天里,我一直在寻找堆栈溢出的答案,以及激烈的谷歌搜索。另外,我需要它的原因是因为我想在运行sudo命令时向用户显示一些进度并输

  • 请先参考这个问题, 无法读取opensslv. h:没有这样的文件或目录 基于此,我需要使用AppleScript运行以下三行终端命令, 我尝试了两种方法,我创建了带有.命令和. sh扩展名的文本文件,并添加了上述三行。然后尝试从AppleScript运行它, 但我犯了这个错误, 这可能行得通, 但它在第三行的终端上请求密码,并等待用户响应。AppleScript中显示的密码对话框(当以管理员权限

  • 我知道有很多关于这个的线索,但是没有一个对我有用。以下是我试图做的: Javac并从我的java代码中运行一个文件。它适用于视窗系统,但我想让它也适用于UNIX。代码如下: 问题是,在UNIX系统上,它的行为“不可预测”,例如: 打开图像,但 它什么也没做。没有按摩。 我非常感谢您的任何意见。 更新--------------------------------------------------

  • AWS CLI for AppSync有一系列可爱的功能,可以从工作站的命令行远程管理它,因此我基本上不必使用浏览器控制台。 但要进行查询,我必须进入web浏览器控制台,在AppSync下查找GraphQl查询。我可以通过CLI更改所有方式,但我找不到一个简单地发出graphql查询的命令。 我错过了吗?它在那里吗<我不想再看这个屏幕了。。。

  • 我使用的是一个安装了Ubuntu的云虚拟机。安装的Java版本为: 在编译java程序时,我必须使用两个jar:和。我使用的终端命令是: 使用将disco和sqlite jar添加到类路径中。 这将在目录中创建我的文件,而不会出现错误。这些JAR包含在目录中。 包含这部分代码,从头开始: 当我在终端中运行以下内容时,问题就开始了: 终端机显示我: 错误:出现JNI错误,请检查您的安装并在线程“ma