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();之间,否则会出现乱码,如下图
测试结果
其他说明
代码需要引⽤外部jar包,关于引⽤外部jar报的代码如何使⽤cmd进⾏编译、运⾏可参考:
参考
>乱码文字怎么打出来