【发布时间】:2022-01-23 11:41:20
【问题描述】:
我很想知道如何在 Windows 中清除控制台。我尝试了一些命令,但没有任何效果
Runtime.getRuntime().exec("cls");
这对我不起作用。
我想知道是否有任何方法可以在 Java 中清除终端,或者是否有外部库来执行此操作。
【问题讨论】:
标签: java terminal console console-application
我很想知道如何在 Windows 中清除控制台。我尝试了一些命令,但没有任何效果
Runtime.getRuntime().exec("cls");
这对我不起作用。
我想知道是否有任何方法可以在 Java 中清除终端,或者是否有外部库来执行此操作。
【问题讨论】:
标签: java terminal console console-application
@Olivier 的回答中的链接确实有效,但不幸的是,大多数建议使用子进程 cls 或不解释如何在 Windows 上启用。
在最新的 Windows 10 中,您可以在 Window Terminal 中使用 ANSI 代码支持,但不能直接在 CMD.EXE 控制台中使用。要启用 CMD.EXE,请添加这些答案中提到的 ANSI colours 的注册表项 VirtualTerminalLevel,然后您可以直接打印适当的 ANSI/VT codes 而无需运行子进程:
System.out.print("\033[2J\033[1;1H");
或者
System.out.print(ANSI.CLEAR_SCREEN+ANSI.position(1, 1));
ANSI 代码的简单定义是:
public class ANSI {
// Control Sequence Introducer:
public static String CSI = "\u001b[";
public static String CLEAR_SCREEN = CSI+"2J";
public static String position(int row, int col) {
return CSI+row+";"+col+"H";
}
}
请注意,其他终端或 IDE 中的终端可能不支持上述内容。
【讨论】: