【问题标题】:What are the difference between ibm jdk and oracle jdk?ibm jdk和oracle jdk有什么区别?
【发布时间】:2019-03-11 15:40:20
【问题描述】:

我正在编写将在 AIX 服务器上运行的 Java 代码。我想知道 IBM 的 JDK 和 Oracle 的 JDK 之间的区别,以及 JDK 是否具有相同的类。 IBM JDK 是否具有 Oracle JDK 中存在的所有类?

是否有任何 IBM 文档描述了这两个 JDK 之间的差异?

【问题讨论】:

  • 两者是同一规范的不同实现。它们不相互包含。
  • @Tichodroma 我在哪里可以找到不同之处?
  • @Tichodroma 如果他们在相同的规范上开发,那么暴露的 API 是相同的!
  • 实际上,IBM JRE 确实包含一些 Sun/Oracle Java 代码,如 java -version 所述:IBM J9 VM JCL - 20170215_01 基于 Oracle jdk8u121-b13

标签: java ibm-jdk


【解决方案1】:

Oracle 和 IBM Java 运行时之间的最大区别在于它们具有独立的 Java 虚拟机 (JVM) 和即时 (JIT) 编译器实现。 IBM 需要构建自己的 JVM 和 JIT,它们可以在 z/OS(大型机)、AIX 和 Linux on Power 处理器等平台上运行 Java 程序,而其他 Java 实现无法在这些平台上运行。 JVM 和 JIT 是 Java 运行时内部的一部分,它们不应改变您编写 Java 程序的方式。没有文档列出 Oracle JDK 和 IBM 之间的巨大差异,因为目标是使它们兼容。正如其他人已经说过的,它们都实现了相同的标准规范和 Java API。也就是说,有很多来自 IBM 的 Java 文档,可从以下网址获得:

http://www.ibm.com/developerworks/java/jdk/docs.html

作为程序员可能会影响您的一个方面是,IBM JRE 有自己的安全提供程序实现,可能需要进行不同的配置。这些都记录在安全指南中 - Java 8 版本在这里:

http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/introduction.html

【讨论】:

    【解决方案2】:

    我在使用 Java 1.6 的环境中工作,部署到 Oracle (JRockit)、IBM 和 Oracle/Sun JDK。

    这三者非常兼容。除了偶尔的差异(例如在 JAXWS 启动行为中)之外,我们遇到的问题非常少。

    没有一个 JDK 缺少其他 JDK 中的东西的巨大漏洞。

    【讨论】:

    • 我会补充一点,加密算法等方面存在一些差异,它们存在于一个而不是另一个。在 Mac 上发现这很难!
    【解决方案3】:

    我在 GBK 编码上遇到了很大的不同。 ibm jvm GBK 代表 ibm936,但 openjdk 或 oracle jdk 代表 CP936。 CP936 是真正的GBK 标准,被称为windows-936。所以遇到奇怪的GBK问题可以看the IBM solutions

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2019-11-20
      • 2014-04-16
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多