如何在Java-Eclipse中清除控制台

4
如何在Eclipse中执行/打印几个语句后清除控制台。我已经尝试使用flush(),但并没有起作用。只是发布示例代码。
System.out.println("execute ");
System.out.println("these set of lines ");
System.out.println("first");

Thread.sleep(2000); // just to see the printed statements in the console
System.out.flush(); // it is not clearing the above statements

我想你正在尝试使用Java清除Eclipse控制台。是这样吗?如果是的话,我认为你可能无法以这种方式影响应用程序控制台,除非你正在开发一些在Eclipse中使用的工具。 - mvalho
为什么你需要这个? - hurricane
是的,这仅限于Eclipse而不是任何生产应用程序。 - Chandra Shekhar
4个回答

8

4

System.out是一个流,清除流是没有意义的。

Eclipse的控制台是一个视图,用于呈现该流,并具有更丰富的功能(包括清除其可见缓冲区中的流内容),但只有当您编写Eclipse插件时才能访问它;一般的Java代码无法了解Eclipse的控制台视图。

您可能可以通过某些技巧实现一些有用的东西,但我不建议依赖它。在生产代码中使用System.out是极不鼓励的;请改用记录器(例如slf4jlogback)。并考虑您真正想要实现什么。


3
取决于您的控制台,但如果支持ANSI转义序列,则尝试以下操作。
final static String ESC = "\033[";
System.out.print(ESC + "2J"); 

此外,您可以打印多个换行符(“\n”)并模拟清除屏幕。在最后进行清除时,至多在Unix shell中,不会删除先前的内容,只会将其向上移动,如果您向下滚动,则可以看到先前的内容。
以下是一个示例代码:
for (int i = 0; i < 50; ++i) System.out.println();

第三个选项:
import java.io.IOException;

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

0
如果你在谈论eclipse(Java控制台,还有mvn控制台和svn控制台),那么你可能想像下面这样使用首选项:
  1. 转到“窗口”»“首选项”以显示“首选项”对话框
  2. 展开“运行/调试”
  3. 选择“控制台”
  4. 现在你可以设置与控制台相关的属性了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接