向后兼容性-Java 1.3运行时上Java 5编译的二进制文件



我可以知道在Java 1.3 JVM上运行Java 5编译的代码(符合Java 1.3源/目标)是否存在任何问题吗?

我知道这很奇怪,但我们的大多数客户都在使用Java 5,但由于我们无法控制的情况,我们受到少数仍在使用Java 1.3的客户的限制。我们的CI工具使用Java 5编译器,但为了向后兼容性,我们将源代码和目标代码的兼容性设置为Java 1.3。我们没有将Java 1.3用于CI,因为有些单元测试不能在1.3上编译。

这会成为一个问题吗?

提前谢谢!

干杯,-Paul

让编译器在应用程序中检查该源代码的唯一方法。仅使用1.3方法是指定指向1.3 rt.jar的-bootclasspath。请注意,您可以从1.3 JRE中获得,它不需要1.3 SDK/编译器。当然,指定-target为1.3。

您将遇到的最大问题是,虽然JVM生成的字节码符合1.3,但您编译的JDK是Java 5。使用一个类是非常容易的,或者更可能是一个存在于Java5中但不存在于1.3JDK中的方法。此代码编译良好,但无法在1.3运行时上运行。

最新更新