Java:清除控制台


Answers

您可以使用以下代碼清除命令行控制台:

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

如需進一步參考,請訪問: http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.htmlhttp://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html

Question

請問任何機構可以告訴我在Java中用於清屏的代碼是什麼? 例如在C ++中

system("CLS");

Java中用於清屏的代碼是什麼?

謝謝!




像這樣在你的課堂上創建一個方法:[如 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) {}
}

這至少適用於Windows,至今我還沒有檢查過Linux。 如果任何人檢查它的Linux請讓我知道它是否工作(或不)。

另一種方法是在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

我不會推薦你使用這種方法。




你可以用for (int i = 0; i < 50; ++i) System.out.println();模擬cls for (int i = 0; i < 50; ++i) System.out.println();




如果你想要一個更獨立於系統的方式,你可以使用JLine庫和ConsoleReader.clearScreen() 。 謹慎檢查當前環境中是否支持JLine和ANSI可能也值得一試。

像下面的代碼為我工作:

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

        }
    }
}

運行時,如果在提示符下輸入'clear',它將清除屏幕。 確保你從適當的終端/控制台運行它,而不是在Eclipse中運行。




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



如果您在Bluej或任何其他類似軟件中執行此操作,這將起作用。

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