Java: effacer la console

tout organisme Peut s'il vous plaît dites-moi ce code est utilisé pour effacer l'écran en Java? Par exemple en C++

system("CLS");

quel code est utilisé en Java pour un écran clair?

Merci!

115
demandé sur Martijn Courteaux 2010-06-05 10:14:35

12 réponses

Puisqu'il y a plusieurs réponses ici montrant le code de non-fonctionnement Pour Windows, voici une clarification:

Runtime.getRuntime().exec("cls");

cette commande ne pas travail, pour deux raisons:

  1. il n'y a pas d'exécutable nommé cls.exe ou cls.com dans une installation Windows standard qui pourrait être invoqué via Runtime.exec , comme la commande bien connue cls est intégrée à la commande de Windows interprète de ligne.

  2. lors du lancement d'un nouveau processus via Runtime.exec , la sortie standard est redirigée vers un tube que le processus Java initiateur peut lire. Mais lorsque la sortie de la commande cls est redirigée, elle ne libère pas la console.

pour résoudre ce problème, nous devons invoquer l'interpréteur en ligne de commande ( cmd ) et lui dire d'exécuter une commande ( /c cls ) qui permet d'invoquer builtin commands. De plus, nous devons connecter directement son canal de sortie au canal de sortie du processus Java, 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();
    }
}

maintenant que 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, il va effacer la console.

87
répondu Holger 2016-03-13 05:03:24

vous pouvez utiliser le code suivant pour effacer la console de ligne de commande:

public static void clearScreen() {  
    System.out.print("3[H3[2J");  
    System.out.flush();  
}  

pour plus de références, visitez: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html

50
répondu satish 2017-12-30 01:47:44

C'est comme ça que je m'en occuperais. Cette méthode fonctionnera pour le cas Windows et le cas Linux / Unix OS (ce qui signifie qu'elle fonctionne aussi 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.
    }
}
17
répondu Dyndrilliac 2014-04-09 06:41:33

une façon d'obtenir ceci peut être d'imprimer plusieurs end of lines ("\n") et simuler l'écran transparent. À la fin clair au plus dans le shell unix, supprime pas le contenu précédent, ne déplace et si vous faites défiler vers le bas peut voir le contenu précédent.

voici un exemple de code:

for (int i = 0; i < 50; ++i) System.out.println();
11
répondu blackløtus 2012-11-24 15:23:36

si vous voulez une façon plus indépendante du système de faire ceci, vous pouvez utiliser la bibliothèque JLine et ConsoleReader.clearScreen () . Une vérification prudente de la prise en charge de JLine et ANSI dans l'environnement actuel en vaut probablement la peine.

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 + "'.");

        }
    }
}

lorsque vous lancez ceci, si vous tapez 'clear' à l'invite il pour effacer l'écran. Assurez-vous de l'exécuter à partir d'un terminal/d'une console appropriée et pas dans Eclipse.

11
répondu prunge 2013-01-19 01:50:57

créer une méthode dans votre classe comme ceci: [comme @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 pour windows au moins, je n'ai pas vérifié pour Linux jusqu'à présent. Si quelqu'un vérifie pour Linux s'il vous plaît laissez-moi savoir si cela fonctionne (ou pas).

comme méthode alternative est d'é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 recommande pas d'utiliser cette méthode.

7
répondu Abhishek Kashyap 2017-12-31 04:45:35

Runtime.getRuntime ().exec (cls) n'a pas travaillé sur mon portable XP. Cela a fait -

for(int clear = 0; clear < 1000; clear++)
  {
     System.out.println("\b") ;
  }

j'Espère que cela est utile

5
répondu user3648739 2014-06-14 17:35:59

essayez ce qui suit :

System.out.print("33");

cela fonctionnera très bien dans L'environnement Linux

4
répondu Bhuvanesh Waran 2016-10-14 10:48:29

Vous pouvez utiliser une émulation de cls avec for (int i = 0; i < 50; ++i) System.out.println();

2
répondu Epic 2015-01-10 05:09:54

cela fonctionnera si vous le faites dans Bluej ou tout autre logiciel similaire.

System.out.print('\u000C');
2
répondu Abhigyan Singh 2017-10-11 10:45:55

vous devez utiliser JNI.

tout d'Abord créer un .dll utiliser visual studio, ce système d'appel("cls"). Après cela, utilisez JNI pour utiliser ce DDL.

j'ai trouvé cet article qui est agréable:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5170&lngWId=2

-4
répondu Denny 2014-09-30 16:47:02
Runtime.getRuntime().exec("cls");
-6
répondu Beothorn 2010-06-05 12:00:02