Java: wis de console

Kan iemand mij vertellen welke code wordt gebruikt voor helder scherm in Java? Bijvoorbeeld in C++

system("CLS");

Welke code wordt in Java gebruikt voor een helder scherm?

Bedankt!


Antwoord 1, autoriteit 100%

Aangezien er hier verschillende antwoorden zijn die niet-werkende code voor Windows tonen, volgt hier een verduidelijking:

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

Dit commando werkt nietom twee redenen:

  1. Er is geen uitvoerbaar bestand met de naam cls.exeof cls.comin een standaard Windows-installatie die kan worden aangeroepen via Runtime.exec, aangezien de bekende opdracht clsis ingebouwd in de opdrachtregelinterpreter van Windows.

  2. Bij het starten van een nieuw proces via Runtime.exec, wordt de standaarduitvoer omgeleid naar een pijp die het initiërende Java-proces kan lezen. Maar wanneer de uitvoer van de opdracht clswordt omgeleid, wordt de console niet gewist.

Om dit probleem op te lossen, moeten we de opdrachtregelinterpreter (cmd) aanroepen en deze opdracht geven een opdracht uit te voeren (/c cls) waarmee ingebouwde opdrachten kunnen worden aangeroepen . Verder moeten we het uitvoerkanaal rechtstreeks verbinden met het uitvoerkanaal van het Java-proces, dat werkt vanaf Java 7, met behulp van 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();
    }
}

Als het Java-proces nu is verbonden met een console, d.w.z. is gestart vanaf een opdrachtregel zonder uitvoeromleiding, wordt de console gewist.


Antwoord 2, autoriteit 90%

U kunt de volgende code gebruiken om de opdrachtregelconsole te wissen:

public static void clearScreen() {  
    System.out.print("\033[H\033[2J");  
    System.out.flush();  
}  

Ga voor meer referenties naar: http ://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html


Antwoord 3, autoriteit 19%

Zo zou ik het aanpakken. Deze methode werkt voor het Windows-besturingssysteem en het Linux/Unix-besturingssysteem (wat betekent dat het ook werkt voor 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.
    }
}

Houd er rekening mee dat deze methode over het algemeen nietde console leegmaakt als je binnen een IDE draait.


Antwoord 4, autoriteit 13%

Een manier om dit te krijgen is door meerdere regels aan het einde van de regel (“\n”) af te drukken en het heldere scherm te simuleren. Aan het einde duidelijk, hoogstens in de unix-shell, verwijdert niet de vorige inhoud, verplaatst deze alleen naar boven en als je naar beneden scrollt, kun je de vorige inhoud zien.

Hier is een voorbeeldcode:

for (int i = 0; i < 50; ++i) System.out.println();

5, Autoriteit 12%

Maak een methode in je klas als volgt: [As @holger zei .]

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) {}
}

Dit werkt tenminste voor Windows, ik heb tot nu toe niet gecontroleerd op Linux. Als iemand het controleert op Linux, laat het me weten als het werkt (of niet).

Als een alternatieve methode is om deze code in clrscr():

te schrijven

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

Ik zal u niet aanbevelen om deze methode te gebruiken.


6, Autoriteit 9%

Probeer het volgende:

System.out.print("\033\143");

Dit werkt prima in Linux-omgeving


7, Autoriteit 7%

Runtime.getruntime (). Exec (CLS) werkte niet op mijn XP-laptop. Dit deed –

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

Ik hoop dat dit handig is


8, Autoriteit 2%

Door alle gegeven antwoorden te combineren, moet deze methode werken op alle omgevingen:

public static void clearConsole() {
    try {
        if (System.getProperty("os.name").contains("Windows")) {
            new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
        }
        else {
            System.out.print("\033\143");
        }
    } catch (IOException | InterruptedException ex) {}
}

Antwoord 9, autoriteit 2%

Dit werkt als je dit doet in Bluej of andere vergelijkbare software.

System.out.print('\u000C');

Antwoord 10, autoriteit 2%

Probeer dit: werkt alleen op console, niet in geïntegreerde NetBeans-console.

public static void cls(){
    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) {}
}

Antwoord 11

U kunt een emulatie van clsgebruiken met
for (int i = 0; i < 50; ++i) System.out.println();


Antwoord 12

U moet controletekens gebruiken als backslash (\b) en regelterugloop (\r). Het is standaard uitgeschakeld, maar de consoleweergave kan deze bedieningselementen interpreteren.

Windows>Voorkeurenen Run/Debug > Consoleen selecteer Interpreteer ASCII-besturingstekensom het in te schakelen

Na deze configuraties kunt u uw console beheren met bedieningstekens zoals:

\t – tabblad.

\b – backspace (een stap terug in de tekst of verwijdering van een enkel teken).

\n – nieuwe regel.

\r – regelterugloop. ()

\f – formulierfeed.

Meer informatie op: https://www.eclipse.org/eclipse /news/4.14/platform.php


Antwoord 13

Je moet JNI gebruiken.

Gebruik allereerst een .dll met behulp van visual studio, dat call system(“cls”).
Gebruik daarna JNI om deze DDL te gebruiken.

Ik vond dit artikel dat leuk is:

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

Other episodes