java - 如何在 Linux 中打开命令终端?

标签 java linux terminal

我想使用 Java 代码在 Linux 机器上打开终端(命令提示符)。 我知道如何在 windows 中打开命令提示符。我在 windows 中使用了以下代码

String command= "cmd c/start cmd.exe"
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

我在 Linux 中需要同样的东西。

感谢您的回答。我也想运行一个 sh 脚本。

下面的代码是否有效。

String command= "usr/bin/xterm myshell.sh";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

最佳答案

在 Linux 中,有许多终端仿真器,它们允许您与各种shell 进行交互。每个 shell 基本上都是一个理解 Linux 命令的命令解释器(我想 GNU 和 Unix 命令更正确......)。终端仿真器为 shell 和其他一些使用命令提示符的工具提供了一个界面(窗口)。要打开终端窗口,您只需像这样修改命令字符串:-

import java.io.*;

class TerminalLauncher
{
    public static void main(String args[]) throws IOException
    {
        String command= "/usr/bin/xterm"; 
        Runtime rt = Runtime.getRuntime();  
        Process pr = rt.exec(command);
    }
}

我所做的基本假设是您想要打开 xterm,它几乎可以在任何系统上使用(当然安装了 X)。您可能想打开另一个终端仿真器,例如 rxvt、eterm、aterm、gnome-terminal 或 konsole。命令字符串也可以修改为使用不同的 shell,如 zsh。如果您选择的终端不存在,我建议您捕获异常并通过要求用户安装它来处理它。更好的解决方案是接受用户首选 shell 的命令行参数,或者使用用户可以更改的配置文件,使您的脚本打开他/她选择的 shell。

注意
1.正如其他人已经指出的那样,xterm(或您选择的任何其他终端)可能不在指定的路径(/usr/bin/...)中,甚至可能没有安装,因此您可能不得不使用一些花哨的命令字符串(例如:通过 grep 流水线查找以在启动之前获取到 xterm 的路径),这不是一个好主意。我认为最好的方法是让用户配置整个事情。

2.我收到了对此答案的评论(来自 ypnos),建议我避免使用绝对路径,而是依赖 PATH 环境变量中的命令。我不得不说我同意。在这种情况下,命令字符串应该是 -

String command = "xterm"

一定要看评论,因为它也指出了使用 find 的问题。

关于java - 如何在 Linux 中打开命令终端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/597927/

相关文章:

linux - 以编程方式检测处理器类型 (Linux)

linux - 在 Debian 上使用 qtcreator 的 QSerialPort 问题

java - 人们必须编写自己的类加载器的原因是什么

java - <br[^>]*> 正则表达式是什么意思?

java - 如果加载时间超过特定时间,Android Timeout webview

java - 在 Linux 上运行 Swing jar

linux - 使用 SED 命令删除 Markdown 文件中的代码块

linux - 如何从 BASH 输入中获取星号值

java - 打开两个终端进行读写

linux - 文件中的单词位置