当我点击按钮时,我编写了一个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)
答案 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 /?