我正在编写将在AIX服务器上运行的Java代码。我想知道IBM的JDK和Oracle的JDK之间的区别,以及JDK是否具有相同的类。 IBM JDK是否具有Oracle JDK中的所有类?
是否有任何IBM文档描述了两个JDK之间的差异?
答案 0 :(得分:9)
Oracle和IBM java运行时之间的最大区别在于它们具有独立的Java虚拟机(JVM)和即时(JIT)编译器实现。 IBM需要构建自己的JVM和JIT,这些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版本在此处:
答案 1 :(得分:3)
我在一个使用Java 1.6,部署到Oracle(JRockit),IBM和Oracle / Sun JDK的环境中工作。
这三者非常易于合作。除了偶尔的差异(例如在JAXWS启动行为中),我们发现的问题非常少。
没有一个巨大的漏洞,其中一个JDK缺少其他的东西。
答案 2 :(得分:1)
我在GBK编码方面遇到了很大的不同。 ibm jvm GBK代表ibm936,但openjdk或oracle jdk是CP936。 CP936是真正的GBK标准,称为Windows-936。因此,如果您解决了奇怪的GBK问题,可以看到the IBM solutions