正如标题所述,我一直在尝试生成一个简单的OSX终端窗口并发出一系列批处理命令,但无济于事。以下是我迄今为止尝试过的几件事的摘要
1)首先我尝试了open命令:
Process p = Runtime.getRuntime().exec("open -n -F -a /Applications/Utilities/Terminal.app --args ls");
虽然前面的代码打开了一个终端窗口但是没有传递参数。
2)接下来我删除了“open”命令并试图直接传递终端应用程序作为语句的一部分传递参数:
Process p = Runtime.getRuntime().exec(new String[]{"/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal","ls"});
同样,这打开了终端窗口但是没有执行列表文件“ls”bash命令。
3)最后我尝试直接执行命令而不指定终端应用程序:
Process p = Runtime.getRuntime().exec("ping -c 3 google.com;");
这里反过来命令ARE按指定执行,但终端窗口没有显示,似乎这个方法要求调用者获取并处理来自进程的输入流,以便查看终端产生的输出
无法想到任何进一步的方法来尝试简单地打开一个终端窗口并以编程方式执行一系列批处理命令,任何指针(没有双关语)都会非常感激。