Jakarta ee GlassFish 6和JDK 11

Jakarta ee GlassFish 6和JDK 11,jakarta-ee,glassfish,Jakarta Ee,Glassfish,我同意雅加达EE 9,我似乎理解GF 6仅在JDK 8上运行。另一方面,雅加达EE 9与JDK 8兼容,那么这是在GF 6上开发和运行EE 9应用程序的许可,好吧,但我怀疑: 如果第一个EE实现只能在JDK 8上运行,那么在最新/热门的Jakarta EE 9技术上开发是有意义的?为什么? 现在就开始是有意义的,因为以后更容易更新到雅加达EE 10 Jakarta EE 9与Jakarta EE 8几乎相同,它只是将所有特定于API的页面移动到Jakarta名称空间。它没有带来任何新特性,因此现

我同意雅加达EE 9,我似乎理解GF 6仅在JDK 8上运行。另一方面,雅加达EE 9与JDK 8兼容,那么这是在GF 6上开发和运行EE 9应用程序的许可,好吧,但我怀疑:

  • 如果第一个EE实现只能在JDK 8上运行,那么在最新/热门的Jakarta EE 9技术上开发是有意义的?为什么?

  • 现在就开始是有意义的,因为以后更容易更新到雅加达EE 10

    Jakarta EE 9与Jakarta EE 8几乎相同,它只是将所有特定于API的页面移动到Jakarta名称空间。它没有带来任何新特性,因此现在不需要JDK升级

    您可以在此处找到一些更详细的信息:


    现在就开始是有意义的,因为以后更容易更新到雅加达EE 10

    Jakarta EE 9与Jakarta EE 8几乎相同,它只是将所有特定于API的页面移动到Jakarta名称空间。它没有带来任何新特性,因此现在不需要JDK升级

    您可以在此处找到一些更详细的信息:


    的确,雅加达EE 9与雅加达EE 8基本相同,但随后在整个源代码中使用了
    javax.*
    包/前缀重命名为
    Jakarta.
    。因此,Java SE所需的最低版本仍然是1.8。重要的是,因为TCK测试仍然至少需要JavaSE1.8

    然而,特别是对于GlassFish 6.0.0来说,这个故事在幕后有点不同。虽然它对JavaSE1.8的要求仍然很低,但它本身并不兼容JavaSE11或更高版本。也就是说,您甚至不能使用JavaSE11执行GlassFish核心引擎。它将立即死亡,并显示以下错误消息:

    JVM无法启动:com.sun.enterprise.admin.launcher.GFLauncherException:服务器过早退出,退出代码为1

    这个特定的问题与Jakarta EE API本身的Java SE兼容性完全不同,也与其他Jakarta EE服务器不同,后者本身只能与较新的Java SE版本兼容

    例如,WildFly 22+与Java SE 11完全兼容(甚至一直到目前可用的15),因此您可以在WildFly上安全地运行Jakarta EE 9应用程序,Java SE版本高达15


    在Jakarta EE 9发布之前,就有计划使GlassFish 6.0.0 Java SE 11兼容,但不幸的是,由于缺乏开源代码提交者的时间,这一计划未能实现。目前有一项工作正在进行中,这将使它最终与Java SE 11兼容(希望也是更新的)。

    的确,雅加达EE 9与雅加达EE 8基本相同,但随后在整个源代码中使用
    javax.*
    包/前缀重命名为
    Jakarta.
    。因此,Java SE所需的最低版本仍然是1.8。重要的是,因为TCK测试仍然至少需要JavaSE1.8

    然而,特别是对于GlassFish 6.0.0来说,这个故事在幕后有点不同。虽然它对JavaSE1.8的要求仍然很低,但它本身并不兼容JavaSE11或更高版本。也就是说,您甚至不能使用JavaSE11执行GlassFish核心引擎。它将立即死亡,并显示以下错误消息:

    JVM无法启动:com.sun.enterprise.admin.launcher.GFLauncherException:服务器过早退出,退出代码为1

    这个特定的问题与Jakarta EE API本身的Java SE兼容性完全不同,也与其他Jakarta EE服务器不同,后者本身只能与较新的Java SE版本兼容

    例如,WildFly 22+与Java SE 11完全兼容(甚至一直到目前可用的15),因此您可以在WildFly上安全地运行Jakarta EE 9应用程序,Java SE版本高达15


    在Jakarta EE 9发布之前,就有计划使GlassFish 6.0.0 Java SE 11兼容,但不幸的是,由于缺乏开源代码提交者的时间,这一计划未能实现。目前,有一项工作正在进行中,这项工作将使它最终与Java SE 11兼容(希望也是更新的)。

    实际情况比您的答案要复杂一些。实际情况比您的答案要复杂一些。