Я создаю свою собственную терминологическую программу на основе Java, и она отлично работает с соединениями SSH и Telnet. Но теперь я хочу открыть локальное прямое соединение, например, xterm или gnome-terminal. Я запускаю «bash -i -l» с ProcessBuilder и использую getInputStream() / getOutputStream(), и, похоже, это работает. (Мне нужно вызвать redirectErrorStream(true)) Моя единственная проблема заключается в том, что bash, похоже, игнорирует переменную среды TERM и не генерирует никаких кодов ANSI. Я получаю подсказку, но при выполнении 'ls -la' отсутствуют CR и цвет. Кроме того, он не возвращает ввод (как при подключении SSH).
Я использую библиотеку JSch от JCraft и вызываю setPtyType("vt100") для соединений SSH. Как мне это сделать при прямом запуске bash?
Я не использую pty, он нужен? Я думаю, что для выделения pty потребуется собственный код. Если да, то как работает pty.
Я пытался посмотреть исходный код xterm, но это беспорядок. Теперь я вспомнил, почему я никогда не вернусь к C-коду.
Есть ли простое решение.
Спасибо.