首页 文章

如何知道一个类是用openjdk还是sunjdk编译的?

提问于
浏览
0

我想在我的产品中使用像saxonica这样的第三方 jar . 之前我们曾经使用过Oracle JDK . 现在,我们正在删除Oracle JDK以使用OpenJDK . 我可以使用同一个 jar 吗?

在这种情况下,我想知道我的jar是用Oracle JDK还是OpenJDK构建的?我怎么知道呢?

2 回答

  • 0

    由于您标记了问题“Saxon”:Saxonica目前使用Oracle JDK构建已发布的JAR文件,但由于Oracle的许可更改,将来可能会发生变化 . 如果我们切换,用户就无法区分 .

    不同JVM之间的兼容性程度如此之高,以至于我们甚至都不打算在多个JVM上进行测试 . 我不记得曾经有过一个错误,其中一些JVM而不是另一个JVM . 当然,您需要在正确的版本范围内使用JVM / JDK:Saxon 9.8适用于Java 6及更高版本,Saxon 9.9适用于Java 8及更高版本 .

    @StephenC讨论了有关支持哪些平台以及哪些平台不受支持的供应商政策 . 在Saxonica中,这从未成为二元支持/不支持的决定 . 如果您发现我们可以在实验室中重现的问题,那么我们会尝试修复它,如果可以的话;如果你发现一个问题,你只能通过使用一些奇特的平台重现,那么我们将告诉我们无法解决它:但这并不意味着你“不受支持” . 这同样适用于Java版本中的“及更高版本” - 欢迎您在发布当天使用Saxon和Java版本17,如果您发现使用日文日历不再有效,那么我们'请注意这个事实;我们不一定会修复它,但我们不会告诉您产品(或客户或平台)不受支持 .

  • 0

    这个类是用OpenJDK还是Sun / Oracle JDK编译的并不重要 . OpenJDK中的Java字节码编译器和相应的Oracle JDK将生成相同的代码,如果使用等效选项调用,则等 .

    此外,据我所知,OpenJDK和Oracle JDK编译器在这种情况下不会帮助你 . 不是说你需要帮助 . )


    我可以使用相同的(第三方) jar 吗?

    是 . OpenJDK与Oracle JDK应该没有区别 .

    但需要注意的是Java版本 . 如果第三方jar文件支持(比如说)Java 7并且您尝试将它与Java 8(OpenJDK或Oracle)一起使用,那么您可能会遇到麻烦,并且您可能需要使用更新版本的jar . 检查支持站点以查找您依赖的库1 .

    而且...当然......你应该彻底测试你的应用程序,以找出可能(假设)可归因于更改为OpenJDK的任何问题 .


    1 - 您可能会发现库供应商只会为Oracle JDK认证其库 . 如果您发现这种情况,您应该直接与他们交谈以了解其原因,以及对您使用库的影响 . 这可能只是一个短期问题 . (如果供应商长期拒绝支持OpenJDK或Oracle JDK,他们将失去相当大比例的客户 . )

相关问题