gpt4 book ai didi

java - 如何在 Java 中隔离不受信任的 native 代码?

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:46 25 4
gpt4 key购买 nike

我有一段我不信任的 C 库(因为它可能经常崩溃)。我是从 Java 进程中调用它的。

防止 C 库崩溃导致整个 Java 应用程序崩溃。下来,我想如果我为这个库生成一个专用的 java 进程,并让它与 Java 应用程序接口(interface),那将是最好的。通过套接字编程或 RMI。然后,如果发生崩溃,我可以生成另一个并继续处理。

ProcessBuilder 是正确的选择吗?或者还有其他更简单的方法吗?

谢谢!

最佳答案

是的,在单独的 Java 进程中托管 native 代码是保护您的应用程序免受 native 代码影响的唯一方法。

至于更简单的方法,只有细微的实现差异。例如,不从您的 Java 应用程序生成代码并将 native 代码包装在配置为自动启动的 native 包装器中。如果您了解 C 和套接字,这将简化解决方案。在这种方法中,RMI 不是最佳选择。

即使您将 native 代码包装在 Java 中,我仍然不会选择 RMI。我在使用 WAN 上的 Windows 时遇到了网络问题。如果可能的话,我会保持沟通简单。如果数据太复杂,也许是一个基本的序列化库。如果您走 XML 路线,则有几个选择。这有点矫枉过正,但您也可以嵌入一个 http 服务器和 Web 服务层。我不知道你的系统要求,但是

复苏将带来各种挑战。如果它停止响应,您是否只是生成另一个进程...您愿意这样做多少次...来自 Java 的进程管理还有很多不足之处。

关于java - 如何在 Java 中隔离不受信任的 native 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4478288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com