Встраивать терминальный кадр в окно JFrame Java - PullRequest
0 голосов
/ 26 февраля 2019

Я пытался сделать приложение, действующее как клиент ssh / scp, чтобы упростить передачу файлов с моего ноутбука на мой рабочий стол, и в настоящее время я смог получить вывод команды ls и получить дерево файловдля хоста и удаленного пользователя, однако это требует ввода в терминал, с которым я запускаю приложение.

Можно ли встраивать окно терминала в графический интерфейс, поскольку я занимался созданием интерпретатора, однако такие вещи, как завершение табуляции и запуск, например, python3, не работают.Я также надеюсь полностью использовать терминал и иметь возможность запускать такие команды, как vim, а не просто выводить вывод команд, который у меня сейчас есть.

Мой код для выполнения команд:

public void processCmd(String command) {
        if (command.equals("exit")) {
            System.exit(0);
        } else if (command != null && !command.isEmpty()) {
            execCommand(command);
        }
}

public void execCommand(String input) {
        String result = null;
        try {
            Runtime r = Runtime.getRuntime();                    

            Process p = r.exec(input);

            BufferedReader in =
                new BufferedReader(new InputStreamReader(p.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
                result += inputLine;
            }
            in.close();

        } catch (IOException e) {
            System.out.println("Error");
        }
}

Основная проблема в том, что когда запускается что-то вроде python или vim, приложение зависает и ничего не делает, python даже не отображается в терминале, однако, если я запустлю vim, он изменитсяэкран терминала (не в приложении) в основном vim, но без нижней панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...