如何清除控制台?

新手上路,请多包涵

任何人都可以告诉我什么代码用于 Java 中的清晰屏幕吗?

例如,在 C++ 中:

 system("CLS");

Java中使用什么代码来清除屏幕?

原文由 sadia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

由于这里有几个答案显示 Windows 的非工作代码,这里是一个澄清:

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

该命令 _不起作用_,原因有二:

  1. There is no executable named cls.exe or cls.com in a standard Windows installation that could be invoked via Runtime.exec , as the well-known command cls 内置于 Windows 的命令行解释器中。

  2. 通过 Runtime.exec 启动新进程时,标准输出被重定向到启动 Java 进程可以读取的管道。但是当 cls 命令的输出被重定向时,它不会清除控制台。

为了解决这个问题,我们必须调用命令行解释器( cmd )并告诉它执行一个允许调用内置命令的命令( /c cls )。此外,我们必须使用 inheritIO() 将它的输出通道直接连接到 Java 进程的输出通道,它从 Java 7 开始工作:

 import java.io.IOException;

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

现在,当 Java 进程连接到控制台时,即从没有输出重定向的命令行启动时,它将清除控制台。

原文由 Holger 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题