Java使用进程替换进行执行

4
这里是Python中的命令: os.execvp 它运行其他应用程序并完全替换当前进程。从脚本的角度来看,os.execvp永远不会返回结果。
问题是如何在Java中实现相同的功能。例如-我有app1.class并运行它。它必须执行其他应用程序,但进程应该被替换。
你知道如何在Java中实现这个功能吗?
谢谢。

我不理解被替换的部分的过程。你指的是什么? - CoolBeans
你可以使用ProcessBuilder.start()或者Runtime.exec()来启动一个新的Process。我不确定这是否是你所需要的。 - CoolBeans
@CoolBeans所说的最终在Unix上执行fork()/execve()。我认为在Java 1.7中,为了实现高效,fork()可以是vfork()posix_spawn()(在Java 1.6中始终是fork())。 - ninjalj
1个回答

4

您不能仅使用Java来完成此操作。您需要启动一个新进程并让旧进程结束。

在*nix上可能可以创建一个JNI库,让它为您执行exec。这只适用于类Unix操作系统。在Windows上,您必须启动一个新进程并等待它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接