我正在使用Java编写的程序, 对于某些操作 ,使用用户configuration的命令行启动外部程序。 目前它使用Runtime.exec()并不保留Process引用(启动的程序是文本编辑器或归档实用程序,因此不需要系统input/输出/ errstream)。 这个问题有一个小问题,那就是当Java程序退出的时候,直到所有已经启动的程序退出,它才真正退出。 如果启动的程序完全独立于启动它们的JVM,我会更喜欢它。 目标操作系统是多个,Windows,Linux和Mac是最小的,但任何带有JVM的GUI系统都是真正需要的(因此实际命令行的用户可configuration性)。 有谁知道如何使启动的程序完全独立于JVM执行? 编辑回应评论 启动代码如下。 代码可以启动位于特定行和列的编辑器,也可以启动存档查看器。 在configuration的命令行中引用的值被视为ECMA-262编码,并被解码,引号被剥离以形成所需的exec参数。 发射发生在美国东部时间。 static Throwable launch(String cmd, File fil, int lin, int col) throws Throwable { String frs[][]={ { "$FILE$" ,fil.getAbsolutePath().replace('\\','/') }, { "$LINE$" ,(lin>0 ? Integer.toString(lin) : "") }, { "$COLUMN$",(col>0 ? Integer.toString(col) : "") }, }; String[] arr; // array of parsed […]