Java 中如何编写命令行清屏代码

在 Java 中,清屏是一个常见的操作,尤其是在开发命令行工具或脚本时,清屏可以用于清除控制台中的输出,以便用户可以看到新的输出内容,以下是一些在 Java 中实现命令行清屏的方法。
使用 System.out.println()
最简单的方法是使用 System.out.println() 来输出足够多的换行符,从而将屏幕上的内容“推”出视野,这种方法不依赖于任何外部库,但可能不是最优雅的解决方案。
public class ClearScreen {
public static void main(String[] args) {
// 输出 100 行空行来清屏
for (int i = 0; i < 100; i++) {
System.out.println();
}
}
}
使用 ANSI 转义序列
大多数现代终端都支持 ANSI 转义序列,这是一种在终端中控制字符显示的机制,在 Java 中,你可以使用这些转义序列来清屏。

public class ClearScreen {
public static void main(String[] args) {
// ANSI 转义序列用于清屏
System.out.print("\033[H\033[2J");
System.out.flush();
}
}
使用第三方库
如果你不介意引入第三方库,有许多库可以提供更丰富的控制台输出功能,包括清屏,JLine 和 jline2 是两个流行的库。
使用 JLine
你需要添加 JLine 库到你的项目中,你可以使用 JLine 的 clear() 方法来清屏。
import jline.Terminal;
import jline.TerminalFactory;
public class ClearScreen {
public static void main(String[] args) {
Terminal terminal = TerminalFactory.get();
terminal.clear();
}
}
使用 jline2
同样,你需要添加 jline2 库到你的项目中,你可以使用 jline2 的 clear() 方法来清屏。

import jline.console.ConsoleReader;
public class ClearScreen {
public static void main(String[] args) throws Exception {
ConsoleReader reader = new ConsoleReader();
reader.clearScreen();
}
}
注意事项
- 在 Windows 系统上,ANSI 转义序列可能不起作用,因为 Windows 的命令行工具不支持这些序列,在这种情况下,你可以使用
System.out.print("\r\n\r\n\r\n...");来输出足够的空行。 - 在使用第三方库时,确保你的项目配置了正确的依赖项。
- 清屏操作通常只在开发或测试环境中使用,在生产环境中,你可能希望避免使用这种可能会干扰用户操作的方法。
通过上述方法,你可以在 Java 中轻松实现命令行清屏功能,选择最适合你项目需求的方法,并根据你的环境进行调整。


















