在 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 的问题。