que - Java: borrar la consola
refresh console java (12)
¿Puede algún cuerpo decirme qué código se utiliza para la pantalla clara en Java? Por ejemplo en C ++
system("CLS");
¿Qué código se usa en Java para una pantalla clara?
¡Gracias!
Así es como lo manejaría. Este método funcionará para el caso del sistema operativo Windows y el caso del sistema operativo Linux / Unix (lo que significa que también funciona para Mac OS X).
public final static void clearConsole()
{
try
{
final String os = System.getProperty("os.name");
if (os.contains("Windows"))
{
Runtime.getRuntime().exec("cls");
}
else
{
Runtime.getRuntime().exec("clear");
}
}
catch (final Exception e)
{
// Handle any exceptions.
}
}
Cree un método en su clase como este: [como dijo here .]
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) {}
}
Esto funciona para Windows al menos, no he verificado Linux hasta ahora. Si alguien lo revisa para Linux, por favor avíseme si funciona (o no).
Como método alternativo es escribir este código en clrscr()
:
for(int i = 0; i < 80*300; i++) // Default Height of cmd is 300 and Default width is 80
System.out.print("/b"); // Prints a backspace
No te recomendaré que uses este método.
Dado que hay varias respuestas aquí que muestran un código que no funciona para Windows, aquí hay una aclaración:
Runtime.getRuntime().exec("cls");
Este comando no funciona, por dos razones:
No hay ningún ejecutable llamado
cls.exe
ocls.com
en una instalación estándar de Windows que podría invocarse a través deRuntime.exec
, ya que loscls
comandos conocidos se incorporan al intérprete de línea de comandos de Windows.Al iniciar un nuevo proceso a través de
Runtime.exec
, la salida estándar se redirecciona a un conducto que el proceso iniciador de Java puede leer. Pero cuando la salida del comandocls
se redirecciona, no borra la consola.
Para resolver este problema, debemos invocar el intérprete de línea de comandos ( cmd
) y decirle que ejecute un comando ( /c cls
) que permite invocar comandos incorporados. Además, tenemos que conectar directamente su canal de salida al canal de salida del proceso de Java, que funciona comenzando con Java 7, usando inheritIO()
:
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, es decir, se ha iniciado desde una línea de comandos sin redirección de salida, borrará la consola.
Esto funcionará si estás haciendo esto en Bluej o cualquier otro software similar.
System.out.print(''/u000C'');
Necesitas usar JNI.
En primer lugar use create .dll usando visual studio, ese sistema de llamadas ("cls"). Después de eso, usa JNI para usar este DDL.
Encontré este artículo que es bueno:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5170&lngWId=2
Pruebe lo siguiente:
System.out.print("/033/143");
Esto funcionará bien en el entorno de Linux
Puede usar el siguiente código para borrar la consola de línea de comando:
public static void clearScreen() {
System.out.print("/033[H/033[2J");
System.out.flush();
}
Para obtener más referencias, visite: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html
Puede usar una emulación de cls
con for (int i = 0; i < 50; ++i) System.out.println();
Runtime.getRuntime (). Exec (cls) NO funcionó en mi computadora portátil XP. Esto hizo -
for(int clear = 0; clear < 1000; clear++)
{
System.out.println("/b") ;
}
Espero que esto sea útil
Si desea una forma de hacerlo más independiente del sistema, puede usar la biblioteca ConsoleReader.clearScreen() y ConsoleReader.clearScreen() . Es probable que valga la pena hacer una comprobación prudente de si JLine y ANSI son compatibles en el entorno actual.
Algo como el siguiente código funcionó para mí:
import jline.console.ConsoleReader;
public class JLineTest
{
public static void main(String... args)
throws Exception
{
ConsoleReader r = new ConsoleReader();
while (true)
{
r.println("Good morning");
r.flush();
String input = r.readLine("prompt>");
if ("clear".equals(input))
r.clearScreen();
else if ("exit".equals(input))
return;
else
System.out.println("You typed ''" + input + "''.");
}
}
}
Al ejecutar esto, si escribe ''borrar'' en el mensaje, borrará la pantalla. Asegúrese de ejecutarlo desde una terminal / consola adecuada y no en Eclipse.
Una forma de conseguir esto puede ser imprimir múltiples extremos de líneas ("/ n") y simular la pantalla clara. Al final claro, a lo sumo en el shell de Unix, no elimina el contenido anterior, solo lo mueve hacia arriba y si hace scroll hacia abajo puede ver el contenido anterior.
Aquí hay un código de muestra:
for (int i = 0; i < 50; ++i) System.out.println();
Runtime.getRuntime().exec("cls");