Java 将ProcessBuilder命令转换为Linux可以理解的内容

Java 将ProcessBuilder命令转换为Linux可以理解的内容,java,windows,macos,processbuilder,Java,Windows,Macos,Processbuilder,你好,堆栈溢出 我目前正在开发一个Java程序,它本质上是一个数字化的角色表,用于龙与地下城风格的冒险。该程序广泛使用了我制作的ClearScreen()方法,该方法使用process builder,如下所示: new ProcessBuilder( "cmd", "/c", "cls" ).inheritIO().start().waitFor(); 最近我了解到我的一个播放器有一个Mac,因此我需要将这个process builder使用的cmd命令转换为它的Mac/Linux等效命令。

你好,堆栈溢出

我目前正在开发一个Java程序,它本质上是一个数字化的角色表,用于龙与地下城风格的冒险。该程序广泛使用了我制作的
ClearScreen()
方法,该方法使用process builder,如下所示:

new ProcessBuilder( "cmd", "/c", "cls" ).inheritIO().start().waitFor();
最近我了解到我的一个播放器有一个Mac,因此我需要将这个process builder使用的
cmd
命令转换为它的Mac/Linux等效命令。我之前已经做了一些研究,并成功构建了以下ProcessBuilder:

new ProcessBuilder("terminal","","clear");
但是,我不知道
/c
的等价物是什么,这是一个在命令执行后导致CMD关闭的参数。因此,我想帮助您填补遗漏的论点(或者可能是实现相同结果的更有效方法)。提前谢谢你

(另外,我对任何误用的术语提前表示歉意。^;我仍在学习如何用Java编程,而且我从未拥有过Mac电脑,所以我在这里有点不知所措。我应该澄清一下,在MacOS上使用名为
ruberglove.bat
)的
.bat
文件,程序在Windows命令提示符界面之外运行(以及GNU/Linux和*BSD),
clear
是一个独立的程序,不需要额外的shell或程序的服务。直接调用它即可:

new ProcessBuilder("clear").inheritIO().start().waitFor();
或者只需打印等效的ANSI转义码即可清除屏幕并将光标设置为原点。这适用于所有标准的类Unix终端,基本上就是
clear
最终要做的事情:

System.out.print("\u001B[H\u001B[J");