【发布时间】:2019-04-11 13:40:08
【问题描述】:
我正在尝试使用 java 代码(尤其是 ProcessBuilder)在 mac 终端中运行命令行。
我在 Windows 环境中编码,然后将其导出到 Mac 到 Jar 可执行文件中。
我设法使用下面发布的代码打开了终端,但是一旦到了那里,命令就没有运行,终端一直死机,等待键盘输入。
我将展示一个简单的示例来说明我想做的事情:
String[] arguments = new String[] {"/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal", "-c", "pwd"};
Process proc = new ProcessBuilder(arguments).start();
代码似乎运行良好,直到它到达“-c”参数,然后它什么也不做。
有人知道如何解决这个问题吗?谢谢!
编辑:我也尝试过不使用“-c”,但结果相同。
【问题讨论】:
-
这在 Java 中不起作用的原因是它在任何地方都不起作用。您应该首先找到一个可以在新终端中运行程序的命令,然后才尝试从 Java 调用它。