Я пишу Java-программу, которую запускаю из терминала. Одна из задач, которую должна выполнить моя программа, - открыть текстовый файл в моем любимом текстовом редакторе. Я выполнил это довольно легко с помощью следующей команды, но она работает только в определенных сценариях.
Runtime.getRuntime().exec("emacs "+p.fullName);
Это прекрасно работает, когда я работаю в локальной системе Linux и когда я ssh подключаюсь к компьютеру, используя флаг -X (для X11). В это время редактор появляется в отдельном окне. Однако если я ssh без -X, мой любимый текстовый редактор никогда не появится. Это время, когда я пытаюсь открыть редактор в том же терминале, что и программа Java.
Причина этого, по-видимому, имеет смысл: java-программа в настоящее время занимает терминал, поэтому редактор либо создается в отдельном состоянии, либо не создается вообще. В любом случае, я хотел бы как-нибудь поместить мою программу в фоновый режим и настроить мой редактор в качестве основного процесса. И есть ли лучший термин для этого, чем переключение контекста?
Редактировать: Emacs выдает мне эту ошибку в данный момент: emacs: стандартный ввод не tty
Редактировать: Удалены упоминания о Лантерне, потому что ошибка воспроизводима без него.