Java打印字体颜色怎么设置?
- 后端开发
- 2025-06-19
- 4
在Java中为控制台输出设置字体颜色,主要依赖ANSI转义序列或第三方库实现,以下是详细方法及注意事项:
使用ANSI转义序列(原生支持)
适用于Linux/macOS终端及Windows 10+的终端(如PowerShell、CMD新版),ANSI代码通过特殊字符控制颜色格式:
public class ColorConsole { // ANSI颜色代码定义 public static final String RESET = "u001B[0m"; public static final String RED = "u001B[31m"; public static final String GREEN = "u001B[32m"; public static final String YELLOW = "u001B[33m"; public static final String BLUE = "u001B[34m"; public static void main(String[] args) { System.out.println(RED + "这是红色文本" + RESET); System.out.println(GREEN + "这是绿色文本" + RESET); System.out.println(BLUE + "这是蓝色文本" + RESET); System.out.println(YELLOW + "警告信息" + RESET); } }
效果说明:
- u001B[ 是ANSI转义序列起始符
- 31m~34m 代表不同前景色
- 0m 用于重置颜色避免后续文本染色
完整颜色表:
| 颜色 | 前景色代码 | 背景色代码 |
|———-|————|————|
| 黑色 | 30 | 40 |
| 红色 | 31 | 41 |
| 绿色 | 32 | 42 |
| 黄色 | 33 | 43 |
| 蓝色 | 34 | 44 |
| 品红 | 35 | 45 |
| 青色 | 36 | 46 |
| 白色 | 37 | 47 |
| 重置 | 0 | – |

使用第三方库(兼容旧版Windows)
对于Windows旧版本(如Win7)或不支持ANSI的环境,推荐以下库:
Jansi库(轻量级解决方案)
Maven依赖:
<dependency> <groupId>org.fusesource.jansi</groupId> <artifactId>jansi</artifactId> <version>2.4.0</version> </dependency>
示例代码:

JColor库(简化语法)
Maven依赖:
<dependency> <groupId>com.diogonunes</groupId> <artifactId>JColor</artifactId> <version>5.5.1</version> </dependency>
示例代码:
import com.diogonunes.jcolor.Attribute; public class JColorExample { public static void main(String[] args) { Attribute redText = Attribute.RED_TEXT(); Attribute bgGreen = Attribute.BACK_COLOR(40, 180, 99); // RGB背景色 System.out.println( Attribute.colorize("红色文字+绿色背景", redText, bgGreen) ); } }
关键注意事项
-
环境兼容性:

- ANSI方法在IntelliJ/Eclipse等IDE控制台中有效
- Windows旧版CMD需使用Jansi等库激活支持
- 执行前通过System.console() != null检测控制台可用性
-
颜色重置:
务必在彩色文本后添加RESET代码,否则后续输出会继承颜色
-
适用场景: