#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 в этом проекте, но для того, когда я буду его использовать, это весьма полезно.