【发布时间】:2012-03-04 05:11:59
【问题描述】:
是否有类似 OSGi 的基于 C/C++ 的框架? 我有大量的 C/C++ 遗留代码,这些代码太昂贵而无法移植到 Java。
【问题讨论】:
-
一种选择是在 Java 中使用 OSGi并使用您的 C/C++ 代码——例如,通过 SWIG、JNA 或 JNI。
-
OSGi 框架支持 JNI 库,包括根据需要通过卸载和重新加载来更新它们。
-
尽管在 OSGi 中使用 JNI 和本机库很容易,但它有一个巨大的缺点。如果由于某种原因,本机代码崩溃,整个 VM 也会崩溃。这可能是不使用 JNI 的原因。在这种情况下,使用带有远程服务的 Apache Celix 之类的解决方案可能更有用。