1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-jansi

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

Jansi

Описание

Jansi — это небольшая библиотека на Java, которая позволяет использовать ANSI escape-коды, чтобы форматировать вывод в консоль, и работает даже на Windows.

Также она предоставляет необходимые JNI-библиотеки:

Maven Central

Функции

  • Реализует поддержку ANSI для раскрашивания и обработки, которой не хватает на платформе Windows, используя интегрированную JNI-библиотеку.
  • Удаляет коды ANSI, если вывод процесса перенаправляется и не привязан к терминалу.
  • Простой в использовании API для создания последовательностей ANSI.
  • Доступ JNI к низкоуровневым функциям консоли.

Обзор

Большинство терминалов Unix поддерживают рендеринг кодов ANSI при отправке их через System.out с помощью Java, но когда это делается на Windows, они не интерпретируются, и вы получаете мусор на консоли.

Кроме того, даже в Unix, когда вывод процесса направляется в файл, обычно не нужно выводить коды ANSI в файл, поскольку большинство программ просмотра файлов и редакторов не будут правильно отображать коды ANSI.

Jansi определяет и абстрагирует поддержку ANSI, предоставляемую подключённым терминалом. Когда ваше приложение Java использует Jansi, оно всегда может предполагать, что стандартные потоки вывода и ошибок поддерживают последовательности ANSI. В зависимости от платформы и того, подключено ли приложение к реальному терминалу, Jansi будет делать одно из следующих действий с кодами ANSI, которые он получает:

  • Пропускать их без изменений;
  • Отфильтровывать их;
  • Использовать платформозависимые API для реализации команд терминала, представленных последовательностью.

Пример использования

Включить поддержку 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 )

Вы можете оставить комментарий после Вход в систему

Введение

jAnsi — это библиотека классов Java, которая позволяет выводить на консоль разноцветные тексты. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-jansi.git
git@api.gitlife.ru:oschina-mirror/mirrors-jansi.git
oschina-mirror
mirrors-jansi
mirrors-jansi
master