关闭JFrame时,外部应用程序将关闭

时间:2014-07-28 10:50:02

标签: java ubuntu jframe

当我点击按钮时,我编写了一个java程序来打开外部应用程序。

Runtime.getRuntime().exec(command);

当我单击按钮时,相关命令将被传递给exec参数,例如,在windows

Runtime.getRuntime().exec(
    "C:\\ProgramFiles\\Google\\Chrome\\Application\\chrome.exe")

该按钮添加在JFrame上。此代码在windows和ubuntu中都正常工作(如果传递了正确的命令)。但是在Ubuntu中,如果我打开一个外部应用程序,然后关闭JFrame,外部应用程序也会以JFrame关闭。但我需要保持外部应用程序open.even jframe关闭(如windows)

2 个答案:

答案 0 :(得分:1)

当你从java应用程序调用外部应用程序时,JAVA应用程序是一个父进程,外部应用程序将是子进程。如果在启动外部应用程序后检查ubuntu中的进程状态,那么它将显示两个具有不同pid的进程。 现在,当JVM启动外部应用程序(作为一个新线程)时,它将在那里执行,直到父关闭,当你关闭java应用程序时它也将关闭所有子进程。

答案 1 :(得分:0)

Runtime.exec()会返回Process个对象。您可以使用它来终止外部应用程序:

Process p = Runtime.getRuntime().exec(command);
p.destory();

编辑:

如果您的目的是在关闭Java程序后保持启动的外部应用程序运行,则应使用Windows命令start启动它。要获得有关如何使用它的更多帮助,请在命令窗口中键入:

start /?