Java清屏函數
前因
因為最近在做Java課程的大作業,一個基於控制台交互的程序,試圖繪制界面,希望每次對console清屏,在網上找了很多清屏函數,發現都或多或少有些問題,包括但不限於以下幾個問題:
- 治標不治本
- 在Windows運行正常,在Linux無法運行
- 在Linux運行正常,在Windows亂碼
- 在Windows cmd運行亂碼,其余正常
代碼
最終,結合了我能找到的代碼,終於得出了一個能實現比較滿意的效果的代碼:
/**
* 清屏
*/
public static void clean() {
try {
String os = System.getProperty("os.name");
if (os.contains("Windows")) {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
} else {
System.out.println("\033c");
}
} catch (Exception exception) {
// Handle exception.
}
}
tips:在eclipse和IDEA這類IDE里面的控制台是無效的,因為IDE里的輸入輸出流是經過重定向的,不過IDE里本來就是為了調試,清除屏幕本身就是不合理的行為,想看最終效果打成jar包即可。