2017-08-18 108 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(); 
} 
}