如何在Java中清除控制台?

Pan*_*dge 28 java console clear

很长一段时间以来,我一直在为我拉头发.我已经研究了如何在Java中清除控制台一小时.

我发现的只是通过打印一堆行或执行此操作来进行肮脏的黑客攻击

Runtime.getruntime.exec("cls/clear");
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有什么对我有用.难道没有像C(clrscr();)那样在Java中清除控制台的方法.是不是有任何外部库可以实现这一目标.

如果有人在使用适当的功能,库等而不是肮脏的黑客攻击之前,请告诉我.

Jon*_*oni 21

如果您的终端支持ANSI转义码,则会清除屏幕并将光标移动到第一行第一列:

System.out.print("\033[H\033[2J");
System.out.flush();
Run Code Online (Sandbox Code Playgroud)

这适用于几乎所有UNIX终端和终端仿真器.Windows cmd.exe不解释ANSI转义码.


小智 6

试试这个代码

import java.io.IOException;

public class CLS {
    public static void main(String... arg) throws IOException, InterruptedException {
        new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当Java进程连接到控制台时,它将清除控制台.


Mer*_*aya 3

Runtime.getRuntime().exec("PlatformDepedentCode");
Run Code Online (Sandbox Code Playgroud)

您需要将“PlatformDependentCode”替换为您平台的明确控制台命令。

exec()方法执行您作为参数输入的命令,就像在控制台中输入的一样。

在 Windows 中,您可以将其写为Runtime.getRuntime().exec("cls");.

  • `Runtime.getRuntime().exec("cls");` 在 Windows 上(始终)不起作用。 (13认同)