宣布阿里云 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

java1

java2

我们建议您迁移到 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 联系我们。