【问题标题】:Using JJWT on JDK 1.6在 JDK 1.6 上使用 JJWT
【发布时间】:2021-10-30 15:19:47
【问题描述】:

在主页上,我注意到 JJWT 应该在所有 JDK 上运行,因为我们的项目由于各种原因仍然停留在 v1.6 上,这听起来很棒。

然而,对于 maven 检索的最后一个版本,类版本不兼容。 后来在构建 wiki 中,我注意到它指定了版本 7。

任何人都知道在 v1.6 上运行什么。 我可以使用旧版本吗,或者我应该自己编译它。

【问题讨论】:

标签: java java-6 jjwt


【解决方案1】:

在主页上,我注意到 JJWT 应该运行在 所有 JDK ...

这绝对是不正确/不准确的。 JJWT 项目的初始提交是针对 JDK 1.6。而且我可以看到代码使用泛型,因此编译/运行早于 JDK 1.5 将是不可能的。

项目最新版本的 POM.xml 文件将项目的源和目标版本设置为 JDK 1.7。因此,标准构建将生成的工件现在肯定不会在 Java 6 平台上运行。类文件版本太新,Java 6 JVM 无法理解。

现在您可以尝试在 HEAD 版本的 POM 文件中将 JDK 级别更改为 1.6。但是,JJWT 的 JDK 版本在四年前就已经超过了 1.6,所以如果你回过头来,很可能会出现构建问题。 (开发人员可能已经引入了 Java 7+ 依赖项;例如,使用 try with resources 语法或 Java 7+ API。)

一个更好的主意是使用旧版本的 JJWT。通过在 Github 上查看项目的 git 历史记录,您应该能够确定需要使用(或构建)什么版本来兼容 JDK 1.6。查看 POM 文件的相关更改以及它们发生的时间。我认为它是 0.9.0 或更高版本。


当然,更好的解决方案是“解除”您的项目。 JDK 1.6 的生命周期结束 8 年,Oracle 的 JDK 1.6(付费)扩展支持结束 3 年。

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多