Cómo limpiar la consola en Java

Rupam Yadav 12 octubre 2023
  1. Usar códigos de escape ANSI para limpiar la consola en Java
  2. Usa ProcessBuilder para limpiar la consola en Java
Cómo limpiar la consola en Java

En este tutorial, veremos las dos formas que se pueden usar para limpiar la pantalla de la consola en Java. Veremos ejemplos para aprender a ejecutar comandos de limpieza de pantalla en Java en tiempo de ejecución.

Usar códigos de escape ANSI para limpiar la consola en Java

Podemos usar códigos especiales llamados secuencias de código de escape ANSI para cambiar las posiciones del cursor o mostrar diferentes colores. Estas secuencias pueden ser interpretadas como comandos que son una combinación de bytes y caracteres.

Para limpiar la consola en Java, usaremos el código de escape \033[H\033[2J. Este extraño conjunto de caracteres representa el comando para limpiar la consola. Para entenderlo mejor, podemos descomponerlo.

Los primeros cuatro caracteres \033 significan ESC o el carácter de escape. Combinando 033 con [H, podemos mover el cursor a una posición específica. Los últimos caracteres, 033[2], limpian toda la pantalla.

Podemos ver el siguiente ejemplo, que utiliza estos códigos de escape. También estamos usando System.out.flush() que se usa especialmente para limpiar los bytes restantes cuando se usa System.out.print() para que no quede nada en la pantalla de la consola.

Ejemplo:

public class ClearConsoleScreen {
  public static void main(String[] args) {
    System.out.print("Everything on the console will cleared");
    System.out.print("\033[H\033[2J");
    System.out.flush();
  }
}

Usa ProcessBuilder para limpiar la consola en Java

En este método, usaremos un ProcessBuilder que es una clase usada principalmente para iniciar un proceso. Podemos construir un proceso con los comandos que limpiarán la consola.

ProcessBuilder() toma los comandos a ejecutar y sus argumentos. El problema con este enfoque es que diferentes sistemas operativos pueden tener diferentes comandos para limpiar la pantalla de la consola. Es por eso que, en nuestro ejemplo, comprobamos el sistema operativo actual.

Por último, estamos usando la clase Process para iniciar un nuevo proceso con inheritIO para establecer los canales estándar de entrada y salida en el canal de E/S de Java.

public class ClearScreen {
  public static void main(String[] args) {
    System.out.println("Hello World");
    ClearConsole();
  }

  public static void ClearConsole() {
    try {
      String operatingSystem = System.getProperty("os.name") // Check the current operating system

                               if (operatingSystem.contains("Windows")) {
        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "cls");
        Process startProcess = pb.inheritIO.start();
        startProcess.waitFor();
      }
      else {
        ProcessBuilder pb = new ProcessBuilder("clear");
        Process startProcess = pb.inheritIO.start();

        startProcess.waitFor();
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Console