清除 Kotlin 中的控制台

4
当在Java中使用通常的Runtime.getRuntime().exec("clear")时,什么也不会发生。然而,如果改为使用touch test.txt,确实会创建一个文本文件。这是有原因的吗?如果有,是否有其他替代方法?
两种方法都可以在相同的环境中在Java中工作。
编辑:错过了括号。

你有检查过是否抛出异常吗?在 exec 周围加上 try/catch。 - Les
刚刚尝试了一下,没有抛出异常。 - Rowan Marshall
1
在大多数环境中,clear是一个shell宏或别名,用于echo <some esc sequence>,无法通过Runtime.getRuntime().exec(…)执行,因为exec仅适用于路径上的真实可执行二进制文件。但是,正如所说,这取决于系统。但是,在所有系统上,Runtime.getRuntime().exec(…)将输出重定向到管道,因此通过向标准输出发送控制字符工作的命令对实际控制台没有影响。换句话说,Runtime.getRuntime().exec("clear")很不可能起作用。 - Holger
1个回答

7

在Linux上至少需要使用转义序列调用print("\u001b[H\u001b[2J")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接