Не удается создать терминал операционной системы с помощью jline3

#java #macos #terminal #jline3

Вопрос:

В macOS 11.6 выполняется этот проходящий тест junit, где Terminal и TerminalBuilder взяты из jline3:

 @Test
    void test1() throws IOException {
        Terminal t = getTerminal();
        Assertions.assertNotNull(t);
    }
 

гетТерминал:

 public Terminal getTerminal() throws IOException {
        return TerminalBuilder.terminal();
    }
 

Альтернативный гетТерминал:

 public Terminal getTerminal() throws IOException {
        return TerminalBuilder.builder().system(true).build();
    }
 

Я получаю это предупреждающее сообщение в консоли с любой версией getTerminal:

ПРЕДУПРЕЖДЕНИЕ: Не удается создать системный терминал, создается тупой терминал (для получения дополнительной информации включите ведение журнала отладки)

Очевидно, мне нужен системный терминал. У меня есть как Jansi, так и JNA на пути к классу, а также полная jline3. Я попытался запустить внутри Eclipse и из командной строки с помощью maven. Результаты те же самые.

Есть какие-нибудь предложения о том, как получить системный терминал?

Ответ №1:

Вам необходимо запустить приложение в командной строке, чтобы получить системный терминал, потому System.in System.out что он должен быть подключен к вашей консоли. Это не тот случай, когда вы запускаете тест junit и, вероятно, не при запуске приложения с помощью maven.

Вы должны написать приложение и запустить его с помощью java команды, чтобы получить системный терминал.

Комментарии:

1. Спасибо @mattirn. Я решил пока не использовать jline в этом проекте, но для того, когда я буду его использовать, это весьма полезно.