cmd調用java程序,在cmd控制台打印出彩色文字



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();之間,否則會出現亂碼,如下圖
pic

測試結果

pic

其他說明

代碼需要引用外部jar包,關於引用外部jar報的代碼如何使用cmd進行編譯、運行可參考:cmd控制台使用命令行編譯、執行依賴其他jar包的java代碼

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM