从java启动外部应用程序-不要将其绑定到VM
有时,我的大型Java应用程序需要启动一个外部程序。 我可以很容易地做到这一点 Runtime.getRuntime().exec(“应用程序名称”) 问题是,启动的应用程序似乎与我的Java进程有关,因为它在我的Java应用程序退出时终止。我想让另一个应用程序继续运行 编辑:上述描述有误。 已启动的应用程序不会被终止 问题是,在我原来的应用程序退出后,我无法再次启动它,直到启动的应用程序终止。原始应用程序(和启动的应用程序)都是Launch4J生成的.exe 那么,如何防止已启动的应用程序阻止完全退出原始应用程序从java启动外部应用程序-不要将其绑定到VM,java,launch,Java,Launch,有时,我的大型Java应用程序需要启动一个外部程序。 我可以很容易地做到这一点 Runtime.getRuntime().exec(“应用程序名称”) 问题是,启动的应用程序似乎与我的Java进程有关,因为它在我的Java应用程序退出时终止。我想让另一个应用程序继续运行 编辑:上述描述有误。 已启动的应用程序不会被终止 问题是,在我原来的应用程序退出后,我无法再次启动它,直到启动的应用程序终止。原始应用程序(和启动的应用程序)都是Launch4J生成的.exe 那么,如何防止已启动的应用程序阻止
(哦,再加上一个Monkey扳手,启动的应用程序使用32位JVM,而原始应用程序在64位JVM中运行。)一种可行的方法是运行shell命令,将程序作为独立进程启动 例如,在Linux上(基于): Windows上的应用程序:
Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start app_name"});
虽然shell命令技巧可能有效,但我确实找到了一种更简单的方法 Desktop.getDesktop()打开(“应用程序名称”)
很明显,它启动应用程序的方式不会与原始程序绑定。这具有不特定于系统的关键优势
Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start app_name"});