36

如果我从 Sun JDK 切换到 OpenJDK,我需要为哪些惊喜做好准备?

什么经常出错,这有多困难?

当然,每个应用程序都可能有其各自的问题,但我正在寻找问题的类别,这是许多人在切换 JDK 时已经遇到的问题。

4

7 回答 7

11

OpenJDK 不太可能出现任何问题。它现在被认为是 100% 兼容的。但我认为最好知道哪些部分必须重写,因此不使用与 SunJDK 相同的代码。

维基百科条目对此有很好的概述:

截至 2008 年 5 月,类库中唯一保持专有和封闭源代码的部分(截至 2007 年 5 月,OpenJDK 7 为 4%,截至 2008 年 5 月和 OpenJDK 6 不到 1%)是 SNMP 实现。

自 2007 年 5 月发布第一个版本以来,Sun Microsystems 在社区的帮助下,已作为免费和开源软件发布,或者用免费和开源替代品替换了几乎所有受累代码:

  • 所有音频引擎代码,包括软件合成器,都已开源发布。闭源软件合成器已被专门为 OpenJDK 开发的名为 Gervill 的新合成器所取代,

  • 类库中使用的所有密码学类都已作为开源发布,

  • 缩放和光栅化字体的代码已被 FreeType 取代

  • 本机色彩管理系统已被 LittleCMS 取代。JDK中有一个可插拔层,商业版可以使用旧的色彩管理系统,OpenJDK可以使用LittleCMS。

  • 抗锯齿图形光栅化代码已被 phoneME 项目中使用的开源 Pisces 渲染器所取代。此代码功能齐全,但仍需要一些性能增强,

  • JavaScript 插件已经开源(Rhino JavaScript 引擎本身从一开始就是开源的)。

于 2010-02-10T16:46:07.007 回答
3

我知道字体看起来会乱码,Sun 不得不从 OpenJDK 中删除原始字体,因为它们不是“开源”的,而 JVM 将使用一些不太好的默认值......

于 2010-02-10T13:55:44.037 回答
2

由于 OpenJDK 是一个 Sun 项目,基于原始的 Java 源代码,我预计不会有很多问题。唯一可能出现问题的地方是必须替换的代码(因为它不能在 GPL 下发布)或由于新功能而发生的更改(但这些应该与官方 JDK 中的几乎相同)。

于 2010-02-10T12:58:05.680 回答
1

使用已知可以通过 TCK 的 OpenJDK 构建以最大程度地减少意外。

于 2010-02-10T15:49:28.530 回答
1

一些摇摆的 UI 并不完全匹配(金属有填充物,足以引起注意)。请注意,这是 8 个月前。

于 2010-02-10T16:54:04.740 回答
1

linux 下的 OpenJDK (IcedTea) 小程序是一大难题。我已经在远程调试一段相当生锈的代码上苦苦挣扎了几个小时。关于如何在浏览器中附加到小程序的官方文档对我来说根本不起作用。顺便说一句,默认情况下没有 java 控制台。我正在认真考虑复制小程序配置并使用 JDK 内置小程序查看器,而不是尝试调试浏览器托管的 JVM。

UPD:我不太确定 OpenJDK 本身没有浏览器插件。也许这种情况最近发生了变化。

于 2011-11-17T20:27:17.087 回答
-1

由于 IcedTea,OpenJDK 比 Oracle 二进制文件更安全。

于 2013-01-13T06:48:21.580 回答