Jansi — это небольшая библиотека на Java, которая позволяет использовать ANSI escape-коды, чтобы форматировать вывод в консоль, и работает даже на Windows.
Также она предоставляет необходимые JNI-библиотеки:
Большинство терминалов Unix поддерживают рендеринг кодов ANSI при отправке их через System.out
с помощью Java, но когда это делается на Windows, они не интерпретируются, и вы получаете мусор на консоли.
Кроме того, даже в Unix, когда вывод процесса направляется в файл, обычно не нужно выводить коды ANSI в файл, поскольку большинство программ просмотра файлов и редакторов не будут правильно отображать коды ANSI.
Jansi определяет и абстрагирует поддержку ANSI, предоставляемую подключённым терминалом. Когда ваше приложение Java использует Jansi, оно всегда может предполагать, что стандартные потоки вывода и ошибок поддерживают последовательности ANSI. В зависимости от платформы и того, подключено ли приложение к реальному терминалу, Jansi будет делать одно из следующих действий с кодами ANSI, которые он получает:
Включить поддержку ANSI от Jansi в вашем приложении так же просто, как выполнить статический метод:
import org.fusesource.jansi.AnsiConsole;
...
AnsiConsole.systemInstall();
Отключение также выполняется с помощью статического метода:
AnsiConsole.systemUninstall();
Безопасно вызывать эти методы несколько раз, они отслеживают, сколько раз был вызван systemInstall()
, и удаляют только тогда, когда метод systemUninstall()
вызывается соответствующее количество раз.
Используя конструктор последовательностей ANSI:
import static org.fusesource.jansi.Ansi.*;
import static org.fusesource.jansi.Ansi.Color.*;
...
System.out.println( ansi().eraseScreen().fg(RED).a("Hello").fg(GREEN).a(" World").reset() );
Приведённый выше код очистит экран, напишет «Hello» красным цветом и «World» зелёным, а затем сбросит цветовые атрибуты, чтобы последующие данные, выводимые в поток, использовали цвета по умолчанию.
Но есть ещё более простой способ сделать это с помощью метода render
:
System.out.println( ansi().eraseScreen().render("@|red Hello|@ @|green World|@") );
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )