在一个进程中,我们如何创建另一个与父进程完全相同的进程?
在一个进程中使用 java,我们如何创建另一个与父进程完全相同的进程?
Using java in one process, how can we create another process that is an exact copy of the parent?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用纯 Java 无法做到这一点。在 C 世界中,您只需使用
fork()
系统call,但Java对此没有直接支持。您可能能够从某些调用
fork()
JNI 代码(或使用 JNA),但我怀疑您的平均 JVM 实现是旨在优雅地处理这个问题。You can't do that using pure Java. In the C world you'd simply use the
fork()
system call, but Java has no direct support for this.You might be able to call
fork()
from some JNI code (or using JNA), but I doubt that your average JVM implementation is built to handle that gracefully.您可以使用 Runtime.exec() 创建另一个具有相同命令行参数的进程。但是,您无法从纯 Java 中创建 C 风格的分支。人们会想象你为什么想要这样做。
我怀疑你想做的事情最好以另一种方式完成。您能否提供更多详细信息,说明您为什么要这样做?
You can create another process which has the same command line arguments with Runtime.exec(). However you cannot do a C-style fork from pure Java. It would be heard to imagine why you would want to.
I suspect what you are trying to do is best done another way. Can you give more details as you why you want to do this?