在java中清除屏幕选项

时间:2009-11-05 17:29:15

标签: java

是否有任何选项可以将java中的屏幕清除为C中的clrscr()。

10 个答案:

答案 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)

在linux上,您可以执行以下操作:

System.out.println("\f");

您也可以使用Jcurses

答案 4 :(得分:5)

对于任何支持ANSI转义的控制台,以下都可以工作(例如在Win98控制台中工作)。

private final String ANSI_CLS = "\u001b[2J";
....
System.out.print(ANSI_CLS);
System.out.flush();
...

从Win NT开始,这将不再有效,你可以

否则你运气不好。

顺便说一下。你必须记住,System.outSystem.err不必是控制台,他们可以设置为永远(写入文件,例如)一个用例,清除屏幕没有任何意义一点都不。

答案 5 :(得分:3)

要清除屏幕,只需输入:

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

答案 6 :(得分:2)

Jansi 是一个很好的解决方法。我是一名业余编码员,Jansi很容易设置,特别是Eclipse。

以下是Jansi主页的链接:

http://jansi.fusesource.org/

以下是包含代码的站点的链接,作为Jansi包中包含的AnsiConsole类的演示:

http://www.rgagnon.com/javadetails/java-0047.html

答案 7 :(得分:2)

您还可以尝试ANSI转义码:

如果您的终端支持他们,请尝试以下方式:

System.out.print("\033[2J\033[1;1H");

您可以添加\0333[1;1H以确保\0333[2J不会将光标移动到左上角。

更具体地说:

  • 033ESC
  • 的八进制
  • 2J用于清除整个控制台/终端屏幕
  • 1;1H将光标移动到第1行和第1列

答案 8 :(得分:0)

对于Windows,Java Console API项目提供了确定控制台大小和设置光标位置的功能。清除屏幕对此来说是微不足道的。它现在是0.2版,所以它不是完全准备就绪,但它确实有效。

或者,您只需通过System.out.println()打印一些新行即可。 640对每个人来说都应该足够了:-)它与清除屏幕不同,但是对于用户的意图和目的而言,它确实如此。

答案 9 :(得分:0)

您应该尝试使用JNA并尝试映射本机库:

  • 在linux上,您必须从 ncurses
  • 映射C函数
  • 在Windows上,你必须映射来自 msvcrt kernel32 的功能,如明确指出here

PS

如果您需要一些示例代码,请告诉我