12

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

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

4

3 回答 3

11

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

于 2016-10-05T10:35:12.773 回答
4

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

三人的默契度非常高。除了偶尔的差异(例如在 JAXWS 启动行为中)之外,我们遇到的问题非常少。

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

于 2014-07-11T09:13:05.263 回答
1

我遇到了GBK编码的很大差异。ibm jvm GBK 代表 ibm936,但 openjdk 或 oracle jdk 代表 CP936。CP936 是真正的GBK 标准,被称为windows-936。因此,如果您遇到奇怪的 GBK 问题,您可以查看IBM 解决方案

于 2019-03-11T07:40:20.473 回答