2011-08-17 16 views
7

que tiene un gran proyecto para depurar, y me preguntaba si hay de todos modos que podría utilizar para cambiar el método de System.out.println en la salida del eclipse deMostrar la salida System.out.println con otro color

por ejemplo:

System.out.println("I want this to be red"); 
System.out.println("I want this to be blue"); 
System.out.println("I want this to be yellow"); 
System.out.println("I want this to be magenta"); 

para una mayor legibilidad.

EDIT

con sysout tengo este sysout

con SYSERR tengo este syserr

+0

posible duplicado de (http [Cómo imprimir en color en la consola utilizando System.out.println?]: // stackoverflow.com/questions/5762491/how-to-print-color-in-console-using-system-out-println) –

+0

la mayoría de los métodos informados aquí funcionan en la consola del sistema pero NO en la consola Eclipse, que es la pregunta . –

Respuesta

20

Dentro de Eclipse, lo más sencillo sería utilizar System.err.println para las líneas que desea ser en rojo - Creo que es el predeterminado. (Puede cambiarlo en Preferencias -> Ejecutar/Depurar -> Consola).

Esa diferencia no se mostrará cuando se ejecuta en una verdadera consola por supuesto , pero yo no creo la consola de Eclipse es compatible con ANSI secuencias de escape en color etc.

EDIT: Para la consola de Windows , Esperaría que funcionara. No es enormemente portátil, pero si eso no es un problema, usted podría crear una clase para encapsular las secuencias de escape adecuada, por lo que podría llamar algo así como:

ansiConsole.printRed("sample line in red"); 
ansiConsole.printBlue("sample line in blue"); 

(probablemente me devolverlo esos métodos volver a cualquiera que sea el color "actual" después de cada llamada.)

EDITAR: Como se señala en los comentarios, la biblioteca Jansi ya existe, por lo que también podría usarla. No tiene los métodos descritos anteriormente, pero estoy seguro de que todavía va a hacer lo que quiere ...

+0

Intenté el syserr pero no tengo el mismo resultado. –

+0

@OpenMind: Sí, pero de una manera totalmente diferente. ¿Qué quiere decir con "No tengo el mismo resultado" antes? –

+0

@OpenMind: Intente enjuagar después de cada escritura, sospecho que es un problema de almacenamiento en búfer. –

2

Por favor, echar un vistazo a Jansi (Jansi's Github)

Jansi es una pequeña java biblioteca que le permite usar secuencias de escape de ANSI para formatear la salida de su consola que funciona incluso en Windows.

+0

U puede usar esto: http://www.java2s.com/Code/Jar/j/Downloadjansi14jar.htm si desea utilizar un jar en lugar del archivo. Esto resolvió mi problema de importación en eclipse. – Eagle

0

Parece que se quiere destacar la salida de System.out.println() usando diferentes colores con el fin de ayudarle a depurar, ¿por qué no redireccionar toda la salida de System.out a un archivo en su punto de entrada del programa:

FileOutputStream fis = new FileOutputStream(new File("log.txt")); 
PrintStream out = new PrintStream(fis); 
System.setOut(out); 

Luego, utilice una herramienta gratuita y portátil de monitoreo de archivos de registro en tiempo real que tenga una función de resaltado configurable usando diferentes colores, como BareTail, para ver este archivo.

5

Por favor, consulte el siguiente código. También remita este enlace para obtener los códigos de color ANSI. http://en.wikipedia.org/wiki/ANSI_escape_code

public class ColourConsoleDemo { 
    public static void main(String[] args) { 
     // TODO code application logic here 
     System.out.println("\033[0m BLACK"); 
     System.out.println("\033[31m RED"); 
     System.out.println("\033[32m GREEN"); 
     System.out.println("\033[33m YELLOW"); 
     System.out.println("\033[34m BLUE"); 
     System.out.println("\033[35m MAGENTA"); 
     System.out.println("\033[36m CYAN"); 
     System.out.println("\033[37m WHITE"); 
    } 
} 
+0

¡Buena respuesta! Funcionó para mí Gracias. – androidevil

+1

en realidad '\ 033 [0m' significa reset. –

+0

Brillante! Creo que esta debería ser la respuesta aceptada – doc

Cuestiones relacionadas