Mac打开一个新终端并在JAVA中运行带参数的脚本

时间:2016-09-16 00:16:36

标签: java macos terminal processbuilder

所以我想在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@$1 "source /etc/profile; appium serverArgs "

所以这没有问题,但是一旦java程序结束,它就会关闭服务器。所以我的解决方法是打开一个新终端并在那里启动脚本。类似的东西:

   String[] command = {"open -b com.apple.terminal", currentDirectory + "/Script/launchVM_Node/" + launchAppiumServer.sh, IPADRESS }; 

但它没有用。如何打开新终端,启动我的脚本并将参数传递给它? (所以在我的java程序结束时它不会结束)

1 个答案:

答案 0 :(得分:0)

尝试将; bash添加到脚本的末尾。这基本上告诉终端在末尾打开一个新的bash shell,它会一直打开,直到你手动关闭它。