【发布时间】:2013-02-17 20:56:06
【问题描述】:
我继承了一个尚未升级的非常旧的应用程序,因为它依赖于依赖于 Java 4 的第三方库。
由于系统的关键部分依赖于它,因此在不久的将来不会摆脱这个第三方库。
我想更新应用程序的 Java 版本,并且正在考虑将依赖的 jar 移动到它自己的 VM 中,然后在 Java 6/7 VM 和 Java 4 VM 之间进行某种调用。
首先想到的是使用 RMI。显而易见的第一个问题是使用不同 Java 版本时 VM 之间的兼容性。第三方库生成字节流,因此返回的数据不会受到序列化的影响。如果兼容性是一个问题,传入的数据可以被处理成可以传递的东西。
这是正确的方法吗?
有更好的方法吗?
【问题讨论】:
-
如果您不能真正删除 Java 4 依赖项,我觉得您是在浪费时间——您获得的安全性很少,而且开销很大。实际的错误是什么,Java 是相当向后兼容的——也许你可以包装第三方库以便它可以在 Java 6 下运行?
-
RMI 是一个不错的选择。这可能是最简单的选择,而且从您对第三方库的描述来看,听起来不值得为此付出不必要的努力。
标签: java serialization jvm rmi java-6