java - 打开一个新的终端窗口并通过java在其中执行命令而不使用bash脚本

标签 java macos bash terminal

例如,这是我的 bash 脚本

osascript -e 'tell app "Terminal"
 do script "./process1"
end tell'

osascript -e 'tell app "Terminal"
 do script "./process2"
end tell'

基本上,它将打开两个不同的终端窗口(在 Mac 上)并执行定义的命令。我尝试通过

在 java 中执行此操作
process1 = Runtime.getRuntime().exec(new String[]{"process1"});
process2 = Runtime.getRuntime().exec(new String[]{"process2"});

问题是似乎只打开了一个终端(并且不可见 - 它在后台运行),然后执行了两个命令 process1 和 process2。但由于进程 1 将使该终端保持忙碌,因此进程 2 无法运行。这就是为什么我想打开不同的终端来执行这些命令。

最佳答案

为每个人创建一个线程。并给出一个时间空间“ sleep (线程 1 或 2 一段时间)”,这将根据您的操作系统运行。

关于java - 打开一个新的终端窗口并通过java在其中执行命令而不使用bash脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572838/

相关文章:

objective-c - Cocoa app设计推荐

linux - 如何根据最新时间列出目录中的文件并循环该文件列表并将其保存在数组中以进行模式匹配

java - Jackson @JsonFormat 用不正确的时区转换日期

java - 打印出最小找零算法中使用的面额时出现问题

Java 从 servlet 调用 EJB

bash - 如何计算多个重叠字符串并获取每行的总出现次数(awk 或其他任何东西)

linux - 用sed替换多行变量

java - 如何用不同的子字符串替换多个子字符串?

c++ - 无法在CLion(macOS)上使用CImg打开.png文件

macos - 在 AppDelegate 中丢失对 NSWindows 的引用