117

I have been using OpenJDK for ages, initially for small projects where it has no problems. But since I started to play with it for big toys, I started to notice random/unknown fatal error and crashes (with H.264 codecs, etc.), and it was a nightmare till then to get ride of system crash+fatal errors caused by OpenJDK.

After getting completely frustrated and tired with OpenJDK, I finally decided to switch into Oracle JDK 7. Since then my fatal errors/crashes were gone. I am still doing trace to see if it occurs, but I never got those system crashes yet.

Now I am wondering, if OpenJDK is only a license issue, why is stability impossible with it?

Why does OpenJDK keep bugs alive, inside their stable releases, but claiming that its clone of Oracle JDK (which it is not really), then what really technically separates OpenJDK from Oracle JDK? (only quick features availability? Or focused on stability/reliability?)

4

2 回答 2

73

技术差异是每个目标的结果(OpenJDK 旨在成为参考实现,对社区开放,而 Oracle 旨在成为商业实现)

它们都具有“几乎”相同的 Java API 类代码;但是虚拟机本身的代码其实是不一样的,在库方面,OpenJDK倾向于使用开放的库,而Oracle倾向于使用封闭的库;例如, 字体库

于 2013-06-28T12:08:22.903 回答
68

OpenJDK 是一个参考模型并且是开源的,而 Oracle JDK 是 OpenJDK 的一个实现并且不是开源的。Oracle JDK 比 OpenJDK 更稳定。

OpenJDK 在 GPL v2 许可下发布,而 Oracle JDK 在 Oracle 二进制代码许可协议下获得许可。

OpenJDK 和 Oracle JDK 的代码几乎相同,但 Oracle JDK 的类更多,并且修复了一些错误。

因此,如果您想开发企业/商业软件,我建议您使用 Oracle JDK,因为它经过全面测试且稳定。

我在使用 OpenJDK 时遇到了很多应用程序崩溃问题,这些问题只需切换到 Oracle JDK 就可以解决

于 2014-03-21T12:30:00.950 回答