gpt4 book ai didi

java - 较新的 JRE 版本可以运行使用较旧 JDK 版本编译的 Java 程序吗?

转载 作者:IT老高 更新时间:2023-10-28 13:52:07 25 4
gpt4 key购买 nike

在运行 Java 程序和在 Java 版本 1.6 1.7 中编译的相关库(我使用 1.7 编译,而一些库使用 1.6 编译)并运行整个程序时,我会遇到任何问题吗? 1.7 JRE?

最佳答案

正如已经回答的那样,您大部分是安全的,大多数产品和 3rd 方库都可以正常工作。然而,确实存在非常罕见的情况,二进制不兼容(使用旧 JDK 编译的类文件将无法在新 JVM 中运行的情况)在 JDK 版本之间引入。

Oracle Java 版本间不兼容官方列表:

兼容性工具

JDK 9一起打包,有一个工具叫jdeprscan 这将验证兼容性,列出代码中不再使用的 API 并建议替代方案(!)。您可以指定目标 JDK 版本(适用于 JDK 9876),它将列出特定于您的目标版本的不兼容性。

对于库的补充说明:

一个合理的经验法则是为您的软件目标的 JRE 版本使用最新的稳定版本库。显然,您会发现这条规则的许多异常(exception)情况,但一般来说,公开可用的库通常的稳定性会随着时间的推移而增加。

在更改依赖项的版本时,自然必须考虑 API 兼容性版本控制

同样,大多数流行的依赖项都会有网页,这些信息应该是可用的。

但是,如果您使用的东西有点晦涩难懂,您可以辨别出哪些 JRE 是您的依赖项中编译的类。

Here is a great answer on how to find out class version .您可能需要先解压缩 JAR 文件。

关于java - 较新的 JRE 版本可以运行使用较旧 JDK 版本编译的 Java 程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10895969/

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