我正在开发一款游戏,该游戏涉及在每次转动后清除屏幕以提高可读性。唯一的问题是我不能使用基于 Windows 命令提示符的“cls”命令,而且它不支持 ANSI 转义字符。我在下一页使用了 Dyndrilliac 的解决方案,但它导致了 IOException:
用“cmd \C cls”替换“cls”只会打开一个新的命令提示符,将其清除,然后在不访问当前控制台的情况下将其关闭。如何使通过 Windows 命令提示符运行的 Java 程序访问命令提示符的参数并使用它们来清除其输出?
我正在开发一款游戏,该游戏涉及在每次转动后清除屏幕以提高可读性。唯一的问题是我不能使用基于 Windows 命令提示符的“cls”命令,而且它不支持 ANSI 转义字符。我在下一页使用了 Dyndrilliac 的解决方案,但它导致了 IOException:
用“cmd \C cls”替换“cls”只会打开一个新的命令提示符,将其清除,然后在不访问当前控制台的情况下将其关闭。如何使通过 Windows 命令提示符运行的 Java 程序访问命令提示符的参数并使用它们来清除其输出?
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
在这里解决:Java:清除控制台
我意识到这是一篇旧帖子,但我讨厌当我发现问题的答案是没关系我明白了,或者它就消失了。希望它能像对我一样帮助别人。
请记住,它在 Eclipse 中不起作用,但在常规控制台中会起作用。如果您担心跨操作系统,请更进一步:
final String os = System.getProperty("os.name");
if (os.contains("Windows"))
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
else
Runtime.getRuntime().exec("clear");
public static void clrscr(){
//Clears Screen in java
try {
if (System.getProperty("os.name").contains("Windows"))
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
else
Runtime.getRuntime().exec("clear");
} catch (IOException | InterruptedException ex) {}
}
创建一个批处理文件以清除 cmd 屏幕并运行您的 java 程序
第 1 步。创建一个扩展名为 .bat 的文件 第 2 步。所以批处理文件中的代码将是
Cls Cd 桌面 // 路径 Javac 文件名.java // 编译 Java 桌面 // 运行
通过这样做....您可以在运行时清除屏幕
与控制台相关的 API 中几乎没有什么可以做一个清晰的屏幕。但是,您可以通过println()
s 达到相同的效果。许多腻子客户像这样清除页面然后向上滚动。
private static final int PAGE_SIZE = 25;
public static void main(String[] args) {
// ...
clearScreen();
}
private static void clearScreen() {
for (int i = 0; i < PAGE_SIZE; i++) {
System.out.println();
}
}