cmd調用java程序,在cmd控制台打印出彩色文字
以下僅為本人工作、學習過程中所接觸到的內容,不足之處請多包涵。
測試環境:win7專業版的DOS
使用cmd調用java程序時,在cmd控制台打印出來的效果默認都是黑底白字,打印出來的報錯信息也沒有特殊標注,不易觀察,所以希望能夠控制cmd控制台的打印效果,對不同提示信息具有不同的顏色表示,這樣也利於觀察分析。
在網上也查了很多資料,大部分說的都是如何在eclipse控制台、IDEA控制台打印出彩色字體,有些說是可以在cmd控制台顯示出彩色字體,但在本人測試環境上仍然沒有效果。經過多次嘗試,最終還是找到了一種有效的解決方法。
注:該測試使用記事本編輯測試代碼,使用cmd編譯、運行代碼。
工具准備
下載工具jansi-xxx.jar,自行下載版本,測試使用版本為1.11。點我下載
編寫測試代碼
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.Ansi.Color;
import org.fusesource.jansi.AnsiConsole;
class ColorTest{
public static void main(String[] args){
//System.out.println( Ansi.ansi().eraseScreen().fg(Ansi.Color.RED).a("Hello").fg(Ansi.Color.GREEN).a(" World").reset() );
AnsiConsole.systemInstall();
System.out.println("hello world!");
System.out.println( Ansi.ansi().fg(Ansi.Color.RED).a("Hello").fg(Ansi.Color.GREEN).a(" World").reset() );
System.out.println(Ansi.ansi().render("@|red Hello|@ @|green World|@").reset());
AnsiConsole.out.println( Ansi.ansi().fg(Ansi.Color.RED).a("Hello World").reset() );
AnsiConsole.out.println("Hello World");
System.out.println("\u001B[32mColor \u001B[0m");
AnsiConsole.systemUninstall();
//System.out.println(Ansi.ansi().eraseScreen().render("@|red Hello|@ @|green World|@"));
}
}
注意
帶有顏色的輸出應包含在AnsiConsole.systemInstall();與AnsiConsole.systemUninstall();之間,否則會出現亂碼,如下圖
測試結果
其他說明
代碼需要引用外部jar包,關於引用外部jar報的代碼如何使用cmd進行編譯、運行可參考:cmd控制台使用命令行編譯、執行依賴其他jar包的java代碼
參考