因爲很長一段時間我一直在拉我的頭髮。我已經研究了一個小時如何清除Java中的控制檯。如何在Java中清除控制檯?
我所發現的是骯髒或者通過打印一堆線或執行本
Runtime.getruntime.exec("cls/clear");
然而,似乎沒有任何爲我工作黑客。真的沒有像C中那樣清除Java中的控制檯的方法(clrscr();
)。沒有任何外部圖書館可以實現這一目標。
請讓我知道如果有人曾經使用過適當的功能,庫等,而不是骯髒的黑客之前做過這個。
因爲很長一段時間我一直在拉我的頭髮。我已經研究了一個小時如何清除Java中的控制檯。如何在Java中清除控制檯?
我所發現的是骯髒或者通過打印一堆線或執行本
Runtime.getruntime.exec("cls/clear");
然而,似乎沒有任何爲我工作黑客。真的沒有像C中那樣清除Java中的控制檯的方法(clrscr();
)。沒有任何外部圖書館可以實現這一目標。
請讓我知道如果有人曾經使用過適當的功能,庫等,而不是骯髒的黑客之前做過這個。
Runtime.getRuntime().exec("PlatformDepedentCode");
您需要用平臺的clear console命令替換「PlatformDependentCode」。
exec()
方法執行您作爲參數輸入的命令,就像它在控制檯中輸入一樣。
在Windows中,您將其編寫爲Runtime.getRuntime().exec("cls");
。
'Runtime.getRuntime().exec(「cls」) ;'在窗口上無效(所有時間)。 – Lion 2012-04-20 06:32:23
您需要指示控制檯清除。
對於串行終端,這通常是通過所謂的「轉義序列」完成的,其中值得注意的是vt100集已變得非常普遍地支持(以及它的近親ANSI表兄弟)。
Windows傳統上不支持這種「開箱即用」的序列,但依靠API調用來完成這些操作。但是,對於基於DOS的Windows版本,可以安裝ANSI.SYS驅動程序來提供此類支持。
所以如果你在Windows下,你需要與相應的Windows API進行交互。我不相信標準的Java運行時庫包含這樣做的代碼。
如果你的終端支持ANSI escape codes,這將清除屏幕,將光標移動到第一行,第一列:
System.out.print("\033[H\033[2J");
System.out.flush();
這適用於幾乎所有的UNIX終端和終端仿真器。 Windows cmd.exe
不解釋ANSI轉義碼。
在ubuntu的eclipse控制檯上不起作用 – sziraqui 2017-09-20 10:11:08
這是因爲Eclipse控制檯不支持ANSI轉義代碼。 – IMustBeSomeone 2017-11-25 19:48:28
您可以使用簡單的循環打印「\ b」輕鬆實現clrscr()。
試試這個代碼
import java.io.IOException;
public class CLS {
public static void main(String... arg) throws IOException, InterruptedException {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
}
}
現在,當Java程序連接到控制檯,它會清除控制檯。
如果您正在使用Windows並且有意在運行程序之前清除屏幕,則可以編譯該文件,從.bat文件中調用它。 例如:
CLS
的Java「什麼都編譯類的名稱是」
另存爲「等」蝙蝠,然後通過調用它在運行命令提示符或雙擊文件
如果你的方法被使用,那麼它在啓動程序之前會清除所有的東西,但問題是關於在運行java程序時在運行時清除屏幕。 – 2017-04-07 17:00:25
使用以下代碼:
System.out.println("\f");
'\˚F' 是轉義序列表示換頁。這是我在我的項目中用來清除控制檯的內容。我猜,這比其他代碼更簡單。
'like C'?我認爲在C中唯一的方法是使用像ncurses這樣的庫。如果這就是你所追求的,這個問題描述瞭如何獲得與Java類似/相同的結果:http://stackoverflow.com/questions/439799/whats-a-good-java-curses-like-library-for-terminal -applications。 – Hassan 2012-04-20 06:24:43
如果你有一個VT100終端,也許你可以使用Escape Codes(Esc [2J \t清除整個屏幕\t ED2)見http://ascii-table.com/ansi-escape-sequences-vt-100.php對於其他終端可能是其他逃逸代碼。 eclipse控制檯不包含任何轉義代碼。 – Andreas 2012-04-20 06:30:28
類似的問題:** [Java:清除控制檯](http://stackoverflow.com/questions/2979383/java-clear-the-console)** – 2012-04-20 06:31:05