我有一个扩展Thread类的类。在其run方法中有一个System.out.println
语句。在执行此print语句之前,我想清除控制台。我怎么能这样做?
我试过
Runtime.getRuntime().exec("cls"); // and "clear" too
和
System.out.flush();
但都没有奏效。
答案 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();
}