我希望用Unix exec替换当前的Java进程。这里已经有一个similar question,但我更喜欢一个消耗尽可能少的内存的解决方案(accepted answer建议使用ClassLoader
,这可能会导致内存泄漏; a类似的简单解决方案是使用另一个流程来启动正确的解决方案)。它肯定可以使用JNI以依赖于平台的方式完成,我认为我可以为Unix做(而且solution对于Unix似乎已经存在),但我对相应的Windows API几乎一无所知。我应该打什么Windows功能?有人做过吗?
答案 0 :(得分:0)
使用Windows,在基本操作系统上运行时可以选择许多子系统,因此有助于了解您的目标。例如,如果您可以使用C运行时库,那么您可以使用与其unix表兄弟非常相似的_exec()
系列函数。也许您可以使用这些来修改jniexec以使用Windows。
答案 1 :(得分:0)
Win32 API不包含'exec'的概念。 POSIX API可以。低级WinNT API具有构建块,但使用它们非常复杂,并且至少在过去,需要求助于未记录的功能。