limpio - ¿Cómo borrar la consola en Java?
metodo limpiar consola java (7)
He estado tirando de mi pelo para esto desde hace bastante tiempo. He investigado durante una hora sobre cómo borrar una consola en Java.
Todo lo que encontré fue piratería sucia imprimiendo un montón de líneas o ejecutando este
Runtime.getruntime.exec("cls/clear");
Sin embargo, nada parece funcionar para mí. ¿No existe realmente una forma de borrar la consola en Java como en C ( clrscr();
)? ¿No hay alguna biblioteca externa por la cual esto pueda lograrse?
Déjeme saber si alguien ha hecho esto antes de usar una función adecuada, una biblioteca, etc. en lugar de un pirateo sucio.
Necesitas dar instrucciones a la consola para borrar.
En el caso de los terminales seriales, esto se hizo normalmente a través de las llamadas "secuencias de escape", donde notablemente el conjunto vt100 se ha vuelto muy comúnmente compatible (y su primo ANSI cercano).
Windows tradicionalmente no ha admitido tales secuencias "listas para usar", pero se basó en llamadas a API para hacer estas cosas. Sin embargo, para las versiones de Windows basadas en DOS, el controlador ANSI.SYS podría instalarse para proporcionar dicho soporte.
Entonces, si estás bajo Windows, necesitas interactuar con la API de Windows apropiada. No creo que la biblioteca de tiempo de ejecución de Java estándar contenga código para hacerlo.
Prueba este codigo
import java.io.IOException;
public class CLS {
public static void main(String... arg) throws IOException, InterruptedException {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
}
}
Ahora, cuando el proceso de Java está conectado a una consola, borrará la consola.
Puede implementar fácilmente clrscr () usando simple para la impresión en bucle "/ b".
Si está utilizando Windows y está interesado en borrar la pantalla antes de ejecutar el programa, puede compilar el archivo y llamarlo desde un archivo .bat. por ejemplo:
cls
java "cualquiera que sea el nombre de la clase compila es"
Guarde como "etc" .bat y luego ejecútelo llamándolo en el símbolo del sistema o haciendo doble clic en el archivo
Si su terminal admite códigos de escape ANSI , esto borra la pantalla y mueve el cursor a la primera fila, primera columna:
System.out.print("/033[H/033[2J");
System.out.flush();
Esto funciona en casi todos los terminales UNIX y emuladores de terminales. El cmd.exe
Windows no interpreta los códigos de escape ANSI.
Usa el siguiente código:
System.out.println("/f");
'' / f '' es una secuencia de escape que representa FormFeed . Esto es lo que he usado en mis proyectos para borrar la consola. Esto es más simple que los otros códigos, supongo.
Runtime.getRuntime().exec("PlatformDepedentCode");
Debe reemplazar "PlatformDependentCode" con el comando clear console de su plataforma.
El método exec()
ejecuta el comando que ingresó como argumento, como si se ingresara en la consola.
En Windows lo escribirías como Runtime.getRuntime().exec("cls");
.