Java 1.3运行时Java 5编译的二进制文件

时间:2011-06-02 03:37:59

标签: java backwards-compatibility

我是否知道在Java 1.3 JVM上运行Java 5编译代码(具有Java 1.3源/目标兼容性)是否存在任何问题?

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

这会成为一个问题吗?

提前谢谢!

干杯, - 保罗

2 个答案:

答案 0 :(得分:3)

你将遇到的最大问题是,虽然JVM生成的字节代码符合1.3,但你正在编译的JDK是Java 5.使用类非常容易,或者更可能的是,存在于Java 5中,但不存在于1.3 JDK中。这段代码编译正常,但无法在1.3运行时运行。

答案 1 :(得分:3)

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