Java: Clear the console

匿名 (未验证) 提交于 2019-12-03 01:32:01

问题:

Can any body please tell me what code is used for clear screen in Java? For example in C++

system("CLS"); 

What code is used in Java for clear screen?

Thanks!

回答1:

Since there are several answers here showing non-working code for Windows, here is a clarification:

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

This command does not work, for two reasons:

  1. There is no executable named cls.exe or cls.com in a standard Windows installation that could be invoked via Runtime.exec, as the well-known command cls is builtin to Windows’ command line interpreter.

  2. When launching a new process via Runtime.exec, the standard output gets redirected to a pipe which the initiating Java process can read. But when the output of the cls command gets redirected, it doesn’t clear the console.

To solve this problem, we have to invoke the command line interpreter (cmd) and tell it to execute a command (/c clsinheritIO():

import java.io.IOException;  public class CLS {     public static void main(String... arg) throws IOException, InterruptedException {         new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();     } } 

Now when the Java process is connected to a console, i.e. has been started from a command line without output redirection, it will clear the console.



回答2:

You can use following code to clear command line console:

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

For further references visit: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html



回答3:

This is how I would handle it. This method will work for the Windows OS case and the Linux/Unix OS case (which means it also works for 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.     } } 


回答4:

A way to get this can be print multiple end of lines ("\n") and simulate the clear screen. At the end clear, at most in the unix shell, not removes the previous content, only moves it up and if you make scroll down can see the previous content.

Here is a sample code:

for (int i = 0; i 


回答5:

If you want a more system independent way of doing this, you can use the JLine library and ConsoleReader.clearScreen(). Prudent checking of whether JLine and ANSI is supported in the current environment is probably worth doing too.

Something like the following code worked for me:

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

When running this, if you type 'clear' at the prompt it will clear the screen. Make sure you run it from a proper terminal/console and not in Eclipse.



回答6:

Create a method in your class like this: [as @Holger said 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) {} } 

This works for windows at least, I have not checked for Linux so far. If anyone checks it for Linux please let me know if it works (or not).

As an alternate method is to write this code in clrscr():

for(int i = 0; i 

I will not recommend you to use this method.



回答7:

Runtime.getRuntime().exec(cls) did NOT work on my XP laptop. This did -

for(int clear = 0; clear 

Hope this is useful



回答8:

You can use an emulation of cls with for (int i = 0; i



回答9:

Try the following :

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

This will work fine in Linux environment



回答10:

This will work if you are doing this in Bluej or any other similar software.

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


回答11:

You need to use JNI.

First of all use create a .dll using visual studio, that call system("cls"). After that use JNI to use this DDL.

I found this article that is nice:

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



回答12:

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!