任何人都可以告诉我什么代码用于 Java 中的清晰屏幕吗? 例如,在 C++ 中: system("CLS"); Java中使用什么代码来清除屏幕? 原文由 sadia 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于这里有几个答案显示 Windows 的非工作代码,这里是一个澄清: Runtime.getRuntime().exec("cls"); 该命令 _不起作用_,原因有二: 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 的命令行解释器中。 通过 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 许可协议
由于这里有几个答案显示 Windows 的非工作代码,这里是一个澄清:
该命令 _不起作用_,原因有二:
There is no executable named
cls.exe
orcls.com
in a standard Windows installation that could be invoked viaRuntime.exec
, as the well-known commandcls
内置于 Windows 的命令行解释器中。通过
Runtime.exec
启动新进程时,标准输出被重定向到启动 Java 进程可以读取的管道。但是当cls
命令的输出被重定向时,它不会清除控制台。为了解决这个问题,我们必须调用命令行解释器(
cmd
)并告诉它执行一个允许调用内置命令的命令(/c cls
)。此外,我们必须使用inheritIO()
将它的输出通道直接连接到 Java 进程的输出通道,它从 Java 7 开始工作:现在,当 Java 进程连接到控制台时,即从没有输出重定向的命令行启动时,它将清除控制台。