繁体   English   中英

如何使用JNA / JNI替换Windows中的当前Java进程?

[英]How to replace the current Java process in Windows using JNA/JNI?

我想用一个新的Unix exec来替换当前的Java进程。 这里已经存在一个类似的问题 ,但是我更喜欢一个消耗尽可能少的内存的解决方案( 公认的答案建议使用ClassLoader ,这可能会导致内存泄漏;类似的简单解决方案是仅使用另一个进程以启动适当的)。 可以肯定的是,可以使用JNI以依赖于平台的方式完成此操作,而且我认为我可以在Unix上做到这一点(而且似乎已经存在针对Unix的解决方案 ),但是我对相应的Windows API几乎一无所知。 我应该调用什么Windows函数? 有人做过吗?

使用Windows,可以在基本OS上运行的子系统中有很多可供选择,因此有助于您了解目标。 例如,如果您可以使用C运行时库,则可以仅使用_exec()系列函数,这些函数与它们的unix表亲非常相似。 也许您可以修改jniexec以使其与Windows一起使用。

Win32 API不包含“ exec”的概念。 POSIX API可以。 低级WinNT API具有构造块,但是使用它们非常复杂,并且至少在过去需要使用未公开文档的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM