我有这个程序
import java.io.IOException;
public class ShellCommand {
public void execShellCmd(String cmd) throws IOException{
Runtime.getRuntime().exec(new String[] {"gnome-terminal", "-x", "bash", "-c", cmd});
}
}
cmd是一个包含以下参数的字符串:
/home/fireworks/workspace/ABT/hello.sh
其中hello.sh是从java
运行的sh文件该程序正常工作,只是在打开gnome-terminal后继续正常,不等待关闭gnome-terminal。
我已经尝试了waitFor();
方法,但没有任何改变
是否有任何解决方案允许程序等待关闭gnome-terminal?
解决:ubuntu 15的gnome-terminal问题。我用xterm
答案 0 :(得分:0)
以下适用于我:
import java.io.IOException;
public class ShellCommand {
public void execShellCmd(String cmd) throws IOException, InterruptedException {
Process p = Runtime.getRuntime().exec(new String[] {"gnome-terminal", "-x", "bash", "-c", cmd});
System.out.println( "Started proc" );
p.waitFor();
System.out.println( "Done waiting" );
}
public static void main( String[] args ) {
ShellCommand s = new ShellCommand();
try {
s.execShellCmd( "sleep 10; echo done" );
} catch( Exception e ) {
}
}
}
我看到“开始proc”打印输出,然后它等待终端完成,然后我看到“完成等待”。