如何在 Windows 上清除 Java 中的控制台

how to clear console in Java on Windows

我很想知道如何在 Windows 中清除控制台。我尝试了一些命令,但没有任何效果

    Runtime.getRuntime().exec("cls");

这对我不起作用。

我想知道 Java 中是否有清除终端的方法,或者是否有外部库可以做到这一点。

@Olivier 回答的 link 确实有效,但不幸的是,大多数建议使用 sub-process cls 或者不解释如何在 Windows 上启用。

在最新的 Windows 10 中,您可以在 Window 终端中使用 ANSI 代码支持,但不能直接在 CMD.EXE 控制台中使用。要为 CMD.EXE 直接添加 ANSI colours and then you can print the appropriate ANSI/VT codes 这些答案中提到的注册表项 VirtualTerminalLevel 而无需 运行 a sub-process:

System.out.print("3[2J3[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 中的终端可能不支持上述内容。