Mac 打开一个新终端和 运行 一个带参数的脚本 JAVA
Mac open a new terminal and run a script with parameter in JAVA
所以我想在 java 中使用 ProcessBuilder 在 VM 上启动脚本。该脚本启动了一个 appium 服务器,我希望它即使在 java 程序结束后也能保持打开状态。所以我有这样的东西:
String[] command = {"/bin/sh", currentDirectory + "/Script/launchVM_Node/" + launchAppiumServer.sh, IPADRESS };
ProcessBuilder ps =new ProcessBuilder(command);
ps.start();
launchAppiumServer.sh :
ssh username@ "source /etc/profile; appium serverArgs "
所以这没有问题,但是一旦 java 程序结束,它就会关闭服务器。所以我的解决方法是打开一个新终端并在那里启动脚本。像 :
String[] command = {"open -b com.apple.terminal", currentDirectory + "/Script/launchVM_Node/" + launchAppiumServer.sh, IPADRESS };
但它不起作用。我如何打开一个新终端,启动我的脚本并将参数传递给它? (所以在我的 java 程序结束时它不会关闭)
尝试将 ; bash
添加到脚本末尾。这基本上告诉终端在最后打开一个新的 bash shell,它将保持打开状态,直到您手动关闭它。
所以我想在 java 中使用 ProcessBuilder 在 VM 上启动脚本。该脚本启动了一个 appium 服务器,我希望它即使在 java 程序结束后也能保持打开状态。所以我有这样的东西:
String[] command = {"/bin/sh", currentDirectory + "/Script/launchVM_Node/" + launchAppiumServer.sh, IPADRESS };
ProcessBuilder ps =new ProcessBuilder(command);
ps.start();
launchAppiumServer.sh :
ssh username@ "source /etc/profile; appium serverArgs "
所以这没有问题,但是一旦 java 程序结束,它就会关闭服务器。所以我的解决方法是打开一个新终端并在那里启动脚本。像 :
String[] command = {"open -b com.apple.terminal", currentDirectory + "/Script/launchVM_Node/" + launchAppiumServer.sh, IPADRESS };
但它不起作用。我如何打开一个新终端,启动我的脚本并将参数传递给它? (所以在我的 java 程序结束时它不会关闭)
尝试将 ; bash
添加到脚本末尾。这基本上告诉终端在最后打开一个新的 bash shell,它将保持打开状态,直到您手动关闭它。