在控制台中打印彩色文本(Windows,Mac,Linux)

时间:2017-08-18 15:37:18

标签: java linux macos colors console

我知道之前曾问过这个问题,但我也有其他一些问题。 所以,如果我在eclipse中使用System.err,则文本为红色。 但是,如果我使用windows命令提示符在eclise外部执行此操作,则所有内容都具有相同的颜色。 现在我的问题是,有没有办法在每个控制台中打印彩色文本?

我尝试使用以下行:

System.out.println((char)27 + "[34;43mBlue text with yellow background");

我在Windows 10上尝试过,但没有用。

我已经尝试过使用Linux Ubuntu,确实有效,但如果适用于所有Linux版本,我不会这样做。

我没有Mac,所以很遗憾我无法尝试,但如果有人可以尝试,那么帮助就会很好。 (如果Mac有这个命令提示符,我也不要这样做,所以我要感谢所有能告诉我更多的人)

如果可能的话,我想在没有任何库的情况下制作它,但如果它非常容易或者没有库真的很难,那就没关系了。 (如果它是一个图书馆我会很高兴如果你想告诉我如果我想发布包含这个图书馆的程序我必须做什么。)

谢谢,abilnf

1 个答案:

答案 0 :(得分: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();
}
}