Очистить экран с помощью команды Windows "cls" в консольном приложении Java

Я работаю над игрой, которая включает в себя очистку экрана после каждого хода для удобства чтения. Единственная проблема заключается в том, что я не могу использовать команду "cls", основанную на командной строке Windows, и она не поддерживает управляющие символы ANSI. Я использовал решение Dyndrilliac на следующей странице, но это привело к IOException:

Java: очистить консоль

Замена "cls" на "cmd \C cls" только открыла новую командную строку, очистила ее и закрыла без доступа к текущей консоли. Как заставить программу на Java, работающую через командную строку Windows, получить доступ к аргументам командной строки и использовать их для очистки выходных данных?

3 ответа

Решение
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();

Решено здесь: Java: Очистить консоль

Я понимаю, что это старый пост, но я ненавижу, когда нахожу вопросы с ответами, не говоря уже о том, что я их получил, или он просто умирает. Надеюсь, это поможет кому-то, как и для меня.

Имейте в виду, что он не будет работать в затмении, но будет работать в обычной консоли. сделайте еще один шаг, если вы беспокоитесь о кросс-ОС:

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

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

Создайте командный файл, чтобы очистить экран cmd и запустить вашу Java-программу

Шаг 1. Создайте файл с расширением.bat. Шаг 2. Таким образом, ваш код в командном файле будет

Cls Cd рабочий стол // путь Javac filename.java // компиляция Java desk // выполняется

Делая это.... вы можете очистить экран во время выполнения

Другие вопросы по тегам