在Java控制台应用程序中使用Windows“cls”命令清除屏幕

时间:2013-10-08 15:52:17

标签: java console command-line-arguments windows-console

我正在开发一款游戏,每次转弯后都会清除屏幕以提高可读性。唯一的问题是我不能使用基于Windows命令提示符的“cls”命令,它不支持ANSI转义字符。我在下一页使用了Dyndrilliac的解决方案,但它导致了IOException:

Java: Clear the console

用“cmd \ C cls”替换“cls”只会打开一个新的命令提示符,清除它并关闭它而不访问当前控制台。如何使通过Windows命令提示符运行的Java程序访问命令提示符的参数并使用它们来清除其输出?

4 个答案:

答案 0 :(得分:8)

new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();

解决方法:Java: Clear the console

我意识到这是一个古老的帖子,但是我讨厌当我发现问题的回答时,没关系,我得到它,或者它只是消失了。希望这对我有所帮助。

请记住,它不会在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");

答案 1 :(得分:1)

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) {}
}

答案 2 :(得分:-1)

在控制台相关的API中几乎没有什么可以做清晰的屏幕。但是,你可以通过println()来达到同样的效果。许多putty客户端清除了这样的页面,然后向上滚动。

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();
    }
}

答案 3 :(得分:-1)

创建批处理文件以清除cmd屏幕并运行java程序

步骤1.创建扩展名为.bat的文件 第2步。所以批处理文件中的代码将是

CLS Cd桌面//路径 Javac filename.java //编译 Java桌面//正在运行

通过执行此操作....您可以在运行时清除屏幕