宣布阿里云 Java V1.0 SDK 即将终止 Java 7 及以下版本的支持
宣布阿里云 Java V1.0 SDK 即将终止 Java 7 及以下版本的支持。
声明内容
从 2025 年 1 月 1 日起,阿里云 Java SDK 将不再继续支持 JDK6、JDK7 运行时,也就是正式终止对 Java 6、Java 7 的支持。具体 SDK 支持策略,请参考阿里云SDK支持策略。
阿里云 Java SDK 目前维护三个主要版本:V1.0、V2.0和异步版。使用 Java 8 或更高版本的客户可以使用V1.0、V2.0、异步版,使用 Java 6/7 的客户可以使用 V1.0。这次停止维护 Java 7及以下版本的支持,涉及的影响版本是V1.0。
Oracle 于 2017 年 10 月同时停止了对 Java 6/7 虚拟机 (JVM) 的维护支持,不再提供扩展更新以及安全更新,所有版本的 End-of-Life(EOL)时间表如下,详情参见 Oracle 官网。阿里云 Java SDK 也将于 2025 年 1 月 1日 停止对 Java 6/7 运行时的维护支持,在此日期之后,使用 Java 6/7 的客户在升级其阿里云 Java SDK 版本时将在运行时收到“Java 版本不匹配”错误。
我们建议您迁移到 Java 8 或更新的运行时,该运行时仍会接收更新并承诺提供长期支持。我们推荐使用 Java 当前长期支持(LTS)的版本,例如 Java 8、Java 11、Java 17、Java 21。
阿里云 SDK 会保证支持最新的 LTS Java 版本。请参考 Java 发布时间表以获取 Java 版本及其维护状态的完整列表。
为什么我们要终止对 JAVA 6/7 的支持?
如前所述,Oracle 于 2017 年 10 月同时停止了对 Java 6/7 虚拟机 (JVM) 的维护支持,不再提供扩展更新以及安全更新。
阿里云 Java SDK 使用了少量行业标准依赖项,由于 Java 6/7 现在通常被视为“不受支持”,因此许多第三方库已停止支持 Java 6/7 作为运行时,或者有些第三方库已经不针对 Java 6/7 运行时提供安全更新。这就导致用户使用起来是有安全风险的,为了避免这些安全风险,我们决定将阿里云 Java SDK 的最低 Java 版本提高到 Java 8。
终止支持意味着什么?
自各版本终止日期起,阿里云 Java SDK 将不再对 Java 6/7 运行时进行安全补丁的更新和新功能的支持,并将最低 Java 版本提高到 Java 8,如果您使用 Java 6/7 的客户在升级其阿里云 Java SDK 版本时将在运行时收到“Java 版本不匹配”错误,如下所示:
$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
$ mvn package
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/aliyun/test/TestClass : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access\$100(URLClassLoader.java:71)
at java.net.URLClassLoader\$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader\$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at Main.main(Main.java:6)
现有的 Java SDK 仍然可以运行吗?
是的,现有的 Java SDK 版本将继续运行。但是强烈建议您将 SDK 迁移到受支持的运行时版本,以便您继续接收安全补丁并保持获得技术支持的资格。
您需要做什么?
如果您尚未准备好更新到较新的 Java 版本,则可以将您使用的阿里云 Java SDK 版本固定为支持 Java 6 的版本,该版本将持续有效。但是,您将不再收到新的服务更新、错误修复或安全修复。
我们建议您升级到 Java 8 或更高版本,假设您使用 Maven 管理您的项目工程,可以做如下修改:
1. 确认并升级本地 Java 版本:
确认你的系统是否已安装适合的 Java 版本。
如果没有,安装 Java 8 或更新的版本。
2. 设置 Maven 使用特定的 JDK:
可以编辑 Maven 的 settings.xml 文件,指示 Maven 使用正确的 JDK:
<profile>
<id>my-jdk-1.8-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
3. 在项目的 pom.xml 中指定 Java 版本:
确保你的 Maven 项目配置使用了所需的 Java 版本。编辑 pom.xml 文件,如下:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.release>1.8</maven.compiler.release>
</properties>
Java SDK 版本维护矩阵
有关阿里云 SDK 维护和弃用的更多信息,请参阅阿里云SDK支持策略。 我们的政策是在社区或供应商结束对依赖项的支持后至少 6 个月内继续支持 SDK 依赖项。但是,此策略可能会根据特定的依赖关系而有所不同,一般这个时间为一年左右。
阿里云 SDK 对 Java 版本的支持矩阵如下:
Java 版本 | 宣布终止支持时间 | 阿里云 SDK 终止支持时间 |
Java 6 | 2017 年 10 月 | 2025 年 1 月 1 日 |
Java 7 | 2017 年 10 月 | 2025 年 1 月 1 日 |
Java 8 | 预计 2030 年 12 月 | 预计 2032 年 1 月 1 日 |
Java 11 | 预计 2032 年 01 月 | 预计 2034 年 1 月 1 日 |
Java 17 | 预计 2029 年 09 月 | 预计 2031 年 1 月 1 日 |
Java 21 | 预计 2031 年 09 月 | 预计 2033 年 1 月 1 日 |
Java 25 | 预计 2033 年 09 月 | 预计 2035 年 1 月 1 日 |
需要额外的帮助怎么办?
如果您有任何疑问,请通过OpenAPI 开发者门户反馈或“OpenAPI 开发者门户 - 值班服务群4群”群的钉钉群号: 60965016010 联系我们。