是否有任何选项可以将java中的屏幕清除为C中的clrscr()。
答案 0 :(得分:11)
随着肮脏的黑客攻击,我喜欢msparer的解决方案。我见过的一种更脏的方法(我自己也不会这样做。我发誓。真的。)是给控制台写一堆换行符。这根本不会清除屏幕,但会为用户创建一个清晰屏幕的错觉。
char c = '\n';
int length = 25;
char[] chars = new char[length];
Arrays.fill(chars, c);
System.out.print(String.valueOf(chars));
答案 1 :(得分:7)
如果你在谈论控制台,那么没有。写入控制台只是输出流的一种特殊情况。输出流对屏幕一无所知,因为它们可以很容易地重定向到文件或其他系统设备。
答案 2 :(得分:7)
如果您正在谈论控制台应用程序,那么AFAIK没有明确的屏幕选项。 非常脏选项将调用底层操作系统的clear screen命令。
然后它就像
Runtime.getRuntime().exec("cls");
for Windows或
Runtime.getRuntime().exec("clear");
用于加载其他操作系统。您可以使用System.getProperty("os.name")
找到操作系统。
答案 3 :(得分:5)
答案 4 :(得分:5)
对于任何支持ANSI转义的控制台,以下都可以工作(例如在Win98控制台中工作)。
private final String ANSI_CLS = "\u001b[2J";
....
System.out.print(ANSI_CLS);
System.out.flush();
...
从Win NT开始,这将不再有效,你可以
否则你运气不好。
顺便说一下。你必须记住,System.out
和System.err
不必是控制台,他们可以设置为永远(写入文件,例如)一个用例,清除屏幕没有任何意义一点都不。
答案 5 :(得分:3)
要清除屏幕,只需输入:
System.out.print('\u000C');
答案 6 :(得分:2)
Jansi 是一个很好的解决方法。我是一名业余编码员,Jansi很容易设置,特别是Eclipse。
以下是Jansi主页的链接:
以下是包含代码的站点的链接,作为Jansi包中包含的AnsiConsole类的演示:
答案 7 :(得分:2)
您还可以尝试ANSI转义码:
如果您的终端支持他们,请尝试以下方式:
System.out.print("\033[2J\033[1;1H");
您可以添加\0333[1;1H
以确保\0333[2J
不会将光标移动到左上角。
更具体地说:
033
是ESC
2J
用于清除整个控制台/终端屏幕1;1H
将光标移动到第1行和第1列答案 8 :(得分:0)
对于Windows,Java Console API项目提供了确定控制台大小和设置光标位置的功能。清除屏幕对此来说是微不足道的。它现在是0.2版,所以它不是完全准备就绪,但它确实有效。
或者,您只需通过System.out.println()
打印一些新行即可。 640对每个人来说都应该足够了:-)它与清除屏幕不同,但是对于用户的意图和目的而言,它确实如此。
答案 9 :(得分:0)
您应该尝试使用JNA并尝试映射本机库:
PS
如果您需要一些示例代码,请告诉我