Quelqu'un peut-il m'indiquer quel code est utilisé pour un écran clair en Java? Par exemple en C++
system("CLS");
Quel code est utilisé dans Java pour un écran clair?
Merci!
Puisqu'il y a plusieurs réponses montrant un code qui ne fonctionne pas pour Windows, voici une clarification:
Runtime.getRuntime().exec("cls");
Cette commande fonctionne pas, pour deux raisons:
Il n'y a pas d'exécutable nommé cls.exe
ou cls.com
dans une installation Windows standard pouvant être appelée via Runtime.exec
, car la commande bien connue cls
est intégrée à la ligne de commande de Windows. interprète.
Lors du lancement d'un nouveau processus via Runtime.exec
, la sortie standard est redirigée vers un canal que le processus initiateur Java peut lire. Mais lorsque la sortie de la commande cls
est redirigée, la console n’est pas effacée.
Pour résoudre ce problème, nous devons appeler l'interpréteur de ligne de commande (cmd
) et lui dire d'exécuter une commande (/c cls
) qui permet d'appeler des commandes intégrées. De plus, nous devons connecter directement son canal de sortie au canal de sortie de Java process, qui fonctionne à partir de Java 7, en utilisant 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();
}
}
Désormais, lorsque le processus Java est connecté à une console, c’est-à-dire qu’il a été démarré à partir d’une ligne de commande sans redirection de sortie, la console sera effacée.
Vous pouvez utiliser le code suivant pour effacer la console de ligne de commande:
public static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
Pour d'autres références, visitez: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html
Voici comment je le ferais. Cette méthode fonctionnera pour les systèmes d'exploitation Windows et Linux/Unix (ce qui signifie que cela fonctionne également pour 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.
}
}
Si vous souhaitez utiliser une méthode plus indépendante du système, vous pouvez utiliser la bibliothèque JLine et ConsoleReader.clearScreen () . Une vérification prudente de si JLine et ANSI est pris en charge dans l’environnement actuel est probablement utile.
Quelque chose comme le code suivant a fonctionné pour moi:
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 + "'.");
}
}
}
Lors de l’exécution de cette opération, si vous tapez "clear" à l’invite, l’écran sera effacé. Assurez-vous de l'exécuter à partir d'un terminal/console approprié et non sous Eclipse.
Une façon d’obtenir ceci peut être d’imprimer plusieurs fins de lignes ("\ n") et de simuler l’écran vide. À la fin, effacez, tout au plus dans le shell unix, ne supprime pas le contenu précédent, ne le déplace que vers le haut et si vous faites défiler vers le bas, vous pouvez voir le contenu précédent.
Voici un exemple de code:
for (int i = 0; i < 50; ++i) System.out.println();
Créez une méthode dans votre classe comme ceci: [as @ Holger dit ici .]
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) {}
}
Cela fonctionne au moins pour Windows, je n'ai pas encore vérifié Linux. Si quelqu'un le vérifie pour Linux, veuillez me laisser savoir si cela fonctionne (ou non).
Une autre méthode consiste à écrire ce code dans 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
Je ne vous recommanderai pas d'utiliser cette méthode.
Essayez ce qui suit:
System.out.print("\033\143");
Cela fonctionnera bien dans un environnement Linux
Runtime.getRuntime (). Exec (cls) ne fonctionnait PAS sur mon ordinateur portable XP. Cela a fait -
for(int clear = 0; clear < 1000; clear++)
{
System.out.println("\b") ;
}
J'espère que cela est utile
Vous pouvez utiliser une émulation de cls
avec for (int i = 0; i < 50; ++i) System.out.println();
Cela fonctionnera si vous le faites dans Bluej ou tout autre logiciel similaire.
System.out.print('\u000C');