¿Qué comando en Java le permitirá borrar la consola en una aplicación de línea de comandos?comandos en java para borrar la pantalla
Respuesta
Depende de su consola, pero si es compatible con ANSI escape sequences, a continuación, intente esto ..
final static String ESC = "\033[";
System.out.print(ESC + "2J");
Siempre existe la obvia (y kludgy) ..
int numRowsInConsole = 60;
for (int ii=0; ii<numRowsInConsole; ii++) {
// scroll down one line
System.out.println("");
}
Borrado de una pantalla generalmente requiere enviando secuencias de control especiales específicas para la pantalla/terminal que su aplicación se está ejecutando. Opciones:
Si sabe que siempre se ejecuta en un terminal específico y puede encontrar las secuencias de control apropiadas para borrar la pantalla para ese terminal, solo aquellas secuencias de salida. Si nos indica la pantalla, podremos indicarle la secuencia (es probable que sea compatible con ANSI/VT100/VT220).
Externamente asegúrese de que su aplicación siempre se ejecute en un terminal deseado, p. un script para iniciar su aplicación inicia la aplicación en el terminal deseado. A continuación, muestre la secuencia de caracteres necesaria para borrar la pantalla.
Tome el control del terminal mediante una biblioteca de emulación de terminal, es decir, su aplicación es ahora una aplicación de ventana que crea una pantalla de ventana de terminal para que el usuario la use. A continuación, controla qué terminal está emulando y sabrá qué secuencias de control se necesitan.
Utilice una biblioteca de terminales (por ejemplo, como la biblioteca histórica
curses
) que detecta el terminal y proporciona una interfaz uniforme para sus funciones. Ver esta pregunta:What's a good Java, curses-like, library for terminal applications?
Falsificarlo escribiendo un montón de líneas en la pantalla.
Ejecutar este programa de ejemplo: se muestra cómo borrar la consola usando una secuencia de escape y la posición del cursor a la posición X = 1, Y = 1.
Lo probé en varios terminales Linux. No sé, si funciona en Windows.
Tal vez usted me puede decir;)
Leer this article sobre secuencias de escape.
import java.io.*;
public class Main {
public static final char ESC = 27;
public static void main(String[] args)
throws Exception {
Console c = System.console();
if (c == null) {
System.err.println("no console");
System.exit(1);
}
// clear screen only the first time
c.writer().print(ESC + "[2J");
c.flush();
Thread.sleep(200);
for (int i = 0; i < 100; ++i) {
// reposition the cursor to 1|1
c.writer().print(ESC + "[1;1H");
c.flush();
c.writer().println("hello " + i);
c.flush();
Thread.sleep(200);
}
}
}
Me gustó la secuencia de comandos. Me gustaría saber si hay una manera de poner el texto de la consola en una variable antes de borrar la consola, y más tarde restaurar la consola de nuevo al estado en que estaba antes de ? Probablemente haciendo algo como 'buffer = System.out; ' ' System.out.print (ESC + "[1; 1H"); ' ' System.out.flush(); ' ' System.out.println ("Lorem ispum ...."); ' ' System.out.print (ESC + "[1; 1H"); ' ' System.out.flush(); ' ' System.out.println (buffer); ' – maan81
Lo siento, no sabía cómo hacer comentarios de varias líneas. – maan81
@ maan81 Lamentablemente, no hay forma de "almacenar" y "restaurar" System.out. Es solo una secuencia.Las capacidades de la consola de Java son * muy * limitadas. –
Creo que lo que OP quiere es borrar la pantalla y mover el cursor a la posición de inicio. Por esa oportunidad:
final String ANSI_CLS = "\u001b[2J";
final String ANSI_HOME = "\u001b[H";
System.out.print(ANSI_CLS + ANSI_HOME);
System.out.flush();
Funciona bien para mí, gracias. – electrotype
Hay dos métodos muy sencillos para solucionar esto, la primera es la opción de la fuerza bruta:
for (int i=1; i<=10; i++)
System.out.println("\n");
El problema con esto sin embargo es que sólo seudo borra la pantalla, puedes desplazarte hacia arriba para ver los datos, pero no temas, ¡hay otra manera!
System.out.println("\f");
Voila! Eso debería ser el truco, aunque el cursor estará situado en la segunda línea de la consola después de que se borre la pantalla.
¿Qué sucede si la consola tiene más de diez líneas de longitud? –
Agregue varias líneas más – diegoaguilar
System.out.println("Hello!");
imprime la cadena especificada y luego mueve el cursor a la siguiente línea.
System.out.print("Hello!");
imprime la cadena especificada y deja el cursor inmediatamente después de esa cadena. Para resolver el problema, identificado arriba, del cursor en la segunda línea de la consola, use print
en lugar de println
.
Hice esto en BlueJ y funcionó perfectamente: Pruebe System.out.print ("\ f");
centro de intercambio de fiesta que está trabajando para mí:
System.out.print(String.format("\033[H\033[2J"));
Que yo sepa ventana de comandos de Windows 10 cmd.exe no soporta de forma nativa secuencias ANSI ESC, a pesar de los rumores. Para tener la: trabajo
final String ANSI_CLS = "\u001b[2J";
System.out.print(ANSI_CLS);
método necesita un emulador de línea de comandos que es compatible con ANSI, como ConEmu64.
Si ninguna de las soluciones anteriores funciona para usted (como en mi caso), trate de esta solución:
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
estoy usando Windows 8 y esta solución funcionó para mí. Espero que te haga bien también. :)
- 1. cómo borrar la pantalla en Python
- 2. Inicialización de NCurses sin borrar la pantalla
- 3. ¿Cómo borrar/eliminar pantalla/página de la pantalla en QML?
- 4. ¿Cómo borrar la consola de la pantalla mysql en Windows?
- 5. ¿Cómo borrar la retroalimentación en el comando de pantalla?
- 6. ¿Cómo borrar la pantalla con \ x1b [2j?
- 7. Fondo de pantalla en vivo - "Establecer fondo de pantalla" - Necesito evento para borrar la memoria
- 8. Cómo borrar la última línea en la ventana de comandos
- 9. ¿Cómo borrar la pantalla en F # interactivo en VS2010?
- 10. ¿Cómo borrar la consola en Java?
- 11. Borrar la pantalla de inicio en R/RStudio
- 12. opción de pantalla claro en java
- 13. ¿Cómo uso getch de curses sin borrar la pantalla?
- 14. OpenGL: ¿Cómo borrar solo una parte de la pantalla?
- 15. Java encuentra la imagen en la pantalla
- 16. ¿Qué comando se puede usar para borrar la pantalla en CLISP?
- 17. Android Java: Apagar la pantalla
- 18. ¿Cómo obtener la pantalla DPI en Java?
- 19. Cómo borrar la consola en Java - Eclipse SDK
- 20. borrar una cookie usando java
- 21. Java GUI Pantalla completa para pantallas múltiples
- 22. En Java, ¿es posible borrar un poco?
- 23. autogenerar la pantalla HTTP raspando código Java
- 24. ¿Cómo borrar la consola programáticamente en Xcode?
- 25. ¿Cómo detectar la pantalla actual con Java?
- 26. Ejecutar Java desde la línea de comandos
- 27. iOS6 - ¿Cómo borrar la memoria caché de la aplicación de pantalla principal/independiente?
- 28. Java argumentos de la línea de comandos
- 29. Cómo borrar los caracteres impresos desde la línea de comandos en C++
- 30. Ejecutar comandos en ventanas de pantalla GNU desde .screenrc
Por favor, aclare. ¿Qué pantalla? ¿La consola? –
qué pantalla por cierto? –