В Linux существует ряд терминальных эмуляторов , которые позволяют вам взаимодействовать с различными оболочками . Каждая оболочка - это, по сути, интерпретатор команд, который понимает команды Linux (команды GNU и Unix более правильные, я полагаю ...). Эмулятор терминала предоставляет интерфейс (окно) для оболочки и некоторые другие средства для использования командной строки. Чтобы открыть окно терминала, вам просто нужно изменить командную строку следующим образом: -
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. Командная строка также может быть изменена для использования различных оболочек, таких как zsh . Я предлагаю вам поймать исключение в случае, если выбранного вами терминала нет, и обработать его, попросив пользователя установить его. Лучшее решение - принять аргументы командной строки для предпочитаемой пользователем оболочки или использовать файл конфигурации, который пользователь может изменить, чтобы ваш скрипт открывал оболочку по своему выбору.
Примечание
1. Как уже отмечали другие, xterm (или любой другой терминал по вашему выбору) может не находиться по указанному пути (/ usr / bin / ...) и даже не быть установленным, поэтому вам, возможно, придется использовать некоторые Необычная командная строка (например: конвейеризация поиска через grep, чтобы получить путь к xterm перед запуском), но это не очень хорошая идея. Я думаю, что лучший способ - позволить пользователю настроить все это.
2. Я получил комментарий к этому ответу (от ypnos), предлагая мне избегать использования абсолютных путей и скорее полагаться на команду, находящуюся в переменной окружения PATH. Я должен сказать, что согласен. В этом случае строка команды должна быть -
String command = "xterm"
Посмотрите на комментарий, потому что он также указывает на проблему с использованием find.