gpt4 book ai didi

java - 将 ProcessBuilder 命令翻译成 Linux 可以理解的内容

转载 作者:行者123 更新时间:2023-12-02 10:56:13 25 4
gpt4 key购买 nike

你好堆栈溢出!

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

new ProcessBuilder( "cmd", "/c", "cls" ).inheritIO().start().waitFor();

最近我了解到我的一位玩家拥有 Mac,因此我需要将此流程构建器使用的 cmd 命令转换为其 Mac/Linux 等效命令。我事先已经做了一些研究,并设法构建了以下 ProcessBuilder:

new ProcessBuilder("terminal","","clear");

但是,我不知道 /c 的等价物是什么,它是一个导致 CMD 在命令执行后关闭的参数。因此,我希望帮助填补缺失的论点(或者可能是实现相同结果的更有效方法)。预先感谢您!

(另外,对于任何误用的术语,我提前表示歉意 ^^;我仍在学习如何用 Java 编程,而且我从未拥有过 Mac,所以我有点在黑暗中跌跌撞撞。我应澄清该程序使用名为 rubberglove.bat.bat 文件在 Windows 命令提示符界面之外运行。)

最佳答案

在 MacOS(以及 GNU/Linux 和 *BSD)上,clear 是一个独立的程序,不需要额外的 shell 或程序的服务。直接调用即可:

new ProcessBuilder("clear").inheritIO().start().waitFor();

或者简单地打印等效的 ANSI 转义码来清除屏幕并将光标设置到原点。这适用于所有标准的类 Unix 终端,本质上就是 clear 最终所做的事情:

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

关于java - 将 ProcessBuilder 命令翻译成 Linux 可以理解的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51715523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com