gpt4 book ai didi

java - 使用最新的 JRE 而不是旧的 Java 版本,我能保证它会工作吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:11:11 25 4
gpt4 key购买 nike

假设我有一个使用 Java 1.5 编码的 Java 项目,我使用的是更高版本的 Java,但将目标设置为 1.5。

如果代码在后来的 Java 上编译和测试正常,我是否可以保证它在实际的 Java 1.5 运行时上也能正常工作?

或者我是否需要安装我所依赖的所有 JRE 的一个版本才能确定?

JRE 中的错误会怎样?如果 1.5 中存在错误,则在 1.6 中已修复。如果我使用目标设置为 1.5 的 Java 1.6,该错误会影响我吗?

在现实情况下,这是我需要担心的问题吗?

最佳答案

假设你将目标和源设置为1.5,你只需要担心我能想到的三种主要情况:

  • 您正在使用内部 com.sun 类,这些类可能已更改或消失(或以某种方式依赖于其他一些内部行为。)

  • 您依赖于在更高版本中修复的错误行为。

  • 您遇到向后不兼容的更改(很少见,但已知会发生。)

    What happens with bugs in the JRE? If there is a bug in 1.5, that is fixed in 1.6. If I use Java 1.6 with target set to 1.5, will that bug affect me?

如果错误在库中,那么不会影响您。 Target 仅真正规定了您编译所针对的字节码版本,您仍将使用更新后的库。如前所述,请注意,如果您依赖于这种错误行为,这可能会导致问题。

如果存在故意向后不兼容的更改,那么我所看到的所有情况都会表现为编译时错误而不是运行时错误,因此它们很容易被发现(而且通常也很容易修复。 )

我仍然提倡在发布之前在新版本的 JVM 上进行测试,但实际上,根据我的经验,这通常不是问题。

关于java - 使用最新的 JRE 而不是旧的 Java 版本,我能保证它会工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15229381/

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