2017-08-18 33 views
0

我知道这个问题之前曾被问到过,但我也有其他一些问题。 所以,如果我在eclipse中使用System.err,文本是红色的。 但是,如果我用eclise在windows命令提示符下执行它,所有东西都有相同的颜色。 现在我的问题是否有在这些控制台中打印彩色文本的方法?在控制台(Windows,Mac,Linux)中打印彩色文本

我用下面的行试了一下:

System.out.println((char)27 + "[34;43mBlue text with yellow background"); 

我与Windows 10试了一下,没有工作。

我已经用Linux Ubuntu试过了,确实有效,但是如果它适用于所有的Linux版本,我也不会。

我没有Mac,所以不幸我不能尝试它,但如果有人可以尝试它,帮助会很好。 (我也不想如果Mac有这个命令提示符,所以我要感谢所有能告诉我更多的人)

如果可能的话,我想让它没有任何库,但如果它非常容易或没有图书馆真的很难,比没关系。 (如果它是一个图书馆,我会很高兴如果你能告诉我如果我想发布包含这个图书馆的程序我必须做什么)。

感谢,abilnf

+0

问一个问题。不是三十。 [jansi](http://fusesource.github.io/jansi/) –

+0

这些ANSI颜色代码https://en.wikipedia.org/wiki/ANSI_escape_code应该适用于大多数/所有Linux终端,但不适用于Windows:“直到Windows 10阈值2之前,Win32控制台根本不支持ANSI转义序列。“ –

回答

0

有一个Java库JANSI被渲染ANSI转义序列在Windows中实现这一目标。

这里是你如何使用它

import org.fusesource.jansi.AnsiConsole; 
import static org.fusesource.jansi.Ansi.*; 
import static org.fusesource.jansi.Ansi.Color.*; 

public class Sample 

{ 

    public static void main(String[] args) 
    { 
AnsiConsole.systemInstall(); 

System.out.println(ansi().fg(RED).a("Hello World").reset()); // Colored 
System.out.println("This is uncolored"); 

AnsiConsole.systemUninstall(); 
} 
}