IBM JDK和Oracle JDK有什么区别?

12

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

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


1
它们是同一规范的不同实现。它们彼此不包含。 - user1907906
@Tichodroma 我在哪里可以找到区别? - Matteo Codogno
@Tichodroma 如果他们在同一规范上开发,暴露的API也是相同的! - Matteo Codogno
更好的答案:http://askubuntu.com/questions/144498/what-is-the-difference-between-the-five-versions-of-java-on-this-page-for-ubuntu - Yousha Aleayoub
实际上,IBM JRE确实包含一些Sun/Oracle Java代码,正如java -version所提到的: IBM J9 VM JCL - 20170215_01 基于Oracle jdk8u121-b13。 - Will
3个回答

11
Oracle和IBM Java运行时之间最大的区别是它们拥有独立的Java虚拟机(JVM)和及时编译器(JIT)实现。IBM需要构建自己的JVM和JIT,以便在z/OS(大型机)、AIX和Power处理器上的Linux等平台上运行Java程序,而其他Java实现则无法运行。JVM和JIT是Java运行时内部的一部分,它们不应改变您编写Java程序的方式。没有列出Oracle JDK和IBM之间的主要差异的文档,因为目标是使它们兼容。正如其他人已经说过的那样,它们都实现了相同的标准规范和Java API。尽管如此,IBM有大量的Java文档可供使用,可在以下网址找到:http://www.ibm.com/developerworks/java/jdk/docs.html
作为程序员,可能会影响您的一个领域是IBM JRE具有其自己的安全提供程序实现,这可能需要进行不同的配置。这些在Security Guide中有记录- Java 8版本在这里:http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/introduction.html

4

我在一个使用Java 1.6的环境中工作,部署到Oracle(JRockit)、IBM和Oracle/Sun JDK。这三个环境非常兼容。除了偶尔存在的一些差异(例如在JAXWS启动行为上),我们几乎没有遇到问题。没有一个JDK缺少其他JDK拥有的东西的情况。


我要补充的是,有一些与加密算法等相关的差异存在于其中一个系统而不是另一个系统。我在Mac上吃了亏! - Greg

1

我在GBK编码方面遇到了很大的差异。IBM JVM GBK代表IBM936,而OpenJDK或Oracle JDK是CP936。CP936是真正的GBK标准,众所周知是Windows-936。因此,如果您遇到奇怪的GBK问题,可以参考IBM解决方案


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接