
En Java hay una librería, Jansi, que permite enviar a la consola los códigos de escape ANSI adecuados para cambiar los colores de las letras, del fondo o ponerlas en «negrita» asi como cambiar la posición del cursor o borrrar una linea entre otras cosas. La API de Jansi está formada por unas pocas clases y se aprende a usarla en unos pocos minutos, la clase principal es Ansi y no necesitaremos mucho más.
Veamos como es en la práctica el uso de Jansi con un ejemplo sencillo mediante un proyecto de ejemplo con Jansi alojado en GitHub:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package es.com.blogspot.elblogdepicodev.jansi; | |
import org.fusesource.jansi.Ansi; | |
import org.fusesource.jansi.AnsiConsole; | |
public class ColorConsola { | |
public static void main(String[] args) { | |
AnsiConsole.systemInstall(); | |
AnsiConsole.out.println(Ansi.ansi().bold().fg(Ansi.Color.RED).a("Hello").fg(Ansi.Color.GREEN).a(" World").fg(Ansi.Color.WHITE).a("!")); | |
AnsiConsole.out.println(Ansi.ansi().reset()); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.RED ).a("EEEEEEE lll bb lll dd iii dd ")); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.GREEN ).a("EE lll bb lll oooo gggggg dd eee pp pp cccc oooo dd eee vv vv")); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.BLUE ).a("EEEEE lll bbbbbb lll oo oo gg gg dddddd ee e ppp pp iii cc oo oo dddddd ee e vv vv ")); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.CYAN ).a("EE lll bb bb lll oo oo ggggggg dd dd eeeee pppppp iii cc oo oo ... dd dd eeeee vvv ")); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.MAGENTA).a("EEEEEEE lll bbbbbb lll oooo gg dddddd eeeee pp iii ccccc oooo ... dddddd eeeee v ")); | |
AnsiConsole.out.println(Ansi.ansi().fg(Ansi.Color.YELLOW ).a(" ggggg pp ")); | |
AnsiConsole.out.println(Ansi.ansi().reset()); | |
AnsiConsole.systemUninstall(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ./gradlew dist |
Para ejecutarlo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
./build/distributions/Jansi/bin/Jansi |
Para crear ese arte ASCII puedes consultar la entrada Arte usando texto ASCII con FIGlet.
Referencia:
Código fuente de ejemplo Texto de la terminal en color con Jansi
http://jansi.fusesource.org/
http://stackoverflow.com/questions/5762491/how-to-print-color-in-console-using-system-out-println