是否有可能在Java中双叉进程?

我需要双叉vmware,所以它不会inheritanceterminalID(TTY / pts)。

这是我到目前为止,但我无法访问到runtime.exec进程fork到另一个进程(这将删除terminalID)。

 Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec("vmware"); 

有没有办法在Java中“守护进程”?

您将需要编写一个小型的C或C ++程序来完成额外的fork,setsid,所有这些。

为了让你的生活变得更轻松,你需要通过关闭隐式连接到当前终端的输入/输出流来断开应用程序与shell之间的连接。

为了让自己更简单,看看akuma项目。 这将是一个简单的Java清洁解决方案,而不需要C包装。

这是一个博客文章讨论它。

为了做到这一点,你实际上不需要“双叉”,只需要一个叉就可以了。 然后孩子应该关闭stdin,出错,并开始一个新的会话。