用Java清除控制台

时间:2014-08-08 18:16:20

标签: java eclipse console

我有一个扩展Thread类的类。在其run方法中有一个System.out.println语句。在执行此print语句之前,我想清除控制台。我怎么能这样做?

我试过

Runtime.getRuntime().exec("cls"); // and "clear" too  

System.out.flush(); 

但都没有奏效。

3 个答案:

答案 0 :(得分:4)

你在Mac上运行吗?因为如果是cls适用于Windows。

视窗:

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

的Mac:

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

flush只是强制立即写入任何缓冲输出。它不会清除控制台。

编辑对不起,这些清除只有在您使用实际控制台时才有效。在eclipse中,没有办法以编程方式清除控制台。您必须放置空格或单击清除按钮。

所以你真的只能使用这样的东西:

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

答案 1 :(得分:2)

您可以尝试使用系统操作系统依赖项来解决这些问题:

final String operatingSystem = System.getProperty("os.name");

if (operatingSystem .contains("Windows")) {
    Runtime.getRuntime().exec("cls");
}
else {
    Runtime.getRuntime().exec("clear");
}

或者其他方式实际上是一种糟糕的方式,但实际上是将退格发送到控制台直到它清除。类似的东西:

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

答案 2 :(得分:0)

以下是我在一个网站上找到的示例,希望它可以正常工作:

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