让groovy控制台程序拥有彩色输出"面孔"

Posted zhangjianying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让groovy控制台程序拥有彩色输出"面孔"相关的知识,希望对你有一定的参考价值。

 结合JNA的使用可以让groovy的控制台程序拥有linux终端一般的彩色数据效果。需要jna.jar包放到classpath可以找到的路径下就可以了。
  1. import com.sun.jna.win32.StdCallLibrary;
  2. import com.sun.jna.*;
  3. public interface Kernel32 extends StdCallLibrary {
  4.    Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
  5.    int GetStdHandle(int stdHand);
  6.    boolean SetConsoleTextAttribute(int hConsoleOutput, int textAtt);
  7. }
  8. def out={color,str->
  9.     int ptr= Kernel32.INSTANCE.GetStdHandle(-11);
  10.     Kernel32.INSTANCE.SetConsoleTextAttribute(ptr, color);
  11.     print(str);
  12.     Kernel32.INSTANCE.SetConsoleTextAttribute(ptr, 3);
  13. }
  14. out (13,"windows ?"+ Platform.isWindows());
  15. out (14,"X11 ?"+ Platform.isX11());
运行一下就可以看到彩色数据的效果了。其中color的参数的具体颜色,可以打开一个控制台然后查看属性

黑色 是数字 0  以此类推

最后我再这个基础上改了一个数据比对程序,下面是效果图

以上是关于让groovy控制台程序拥有彩色输出"面孔"的主要内容,如果未能解决你的问题,请参考以下文章

这个Python为啥......

控制台输出彩色样式

C#控制台程序怎么实现输出彩色字体?

python通过colorama模块在控制台输出彩色文字的方法

使用 ANSI / VT100 代码在 PowerShell 控制台中输出彩色文本

如何将快速彩色输出写入控制台?