Java清屏函数
@[toc]
前因
因为最近在做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包即可。