2010-02-10 152 views
36

如果我从Sun JDK切换到OpenJDK,那么我需要为自己准备哪些惊喜?如果我从Sun JDK切换到OpenJDK,需要准备哪些惊喜?

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

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

+0

如果你可以为他们做准备,那么他们并不意外;-) – 2010-02-10 12:25:27

+1

更严肃的说明:如果你告诉我们你的应用程序做了什么,那么你可能会得到更有针对性的答案。 – 2010-02-10 12:26:00

+1

如果发生错误,您将能够修改JVM代码。这不令人惊讶吗? – 2010-02-10 12:26:08

回答

11

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

Wikipedia entry对此有着很好的概述:

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

因为第一2007年5月发布,Sun微系统,在社会各界的帮助下,已作为免费和开源软件或免费和开放源代码的替代品,几乎所有担保的代码替换:

  • 包括软件合成器在内的所有音频引擎代码已经作为开源发布。闭源软件合成器已经取代专为OpenJDK的所谓Gervill开发出一种新的合成,

  • 类库中已经发布为开放源代码使用的所有加密类,

  • 可以扩展的代码并且栅格化字体已被FreeType取代

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

  • anti-aliasing图形栅格化程序代码已被phoneME项目中使用的Open-sourced Pisces渲染程序代替。此代码功能齐全,但仍需要一些性能增强功能,但该插件已经开源(Rhino JavaScript引擎本身从一开始就是开源的)。

+2

大多数Linux发行版中包含的OpenJDK不是100%兼容的。 Java Sound的实现来自IcedTea,它的行为与Sun的不同。例如,如果您尝试写入封闭线(即几乎所有现有Java Sound代码的工作原理)(例如JavaZOOM,jsresources.org),则会引发异常。随着字体渲染的困难,我会称之为“仅”98%兼容。 – 2010-05-05 18:23:07

2

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

+1

“唯一可以破解的地方是必须替换的代码” - 您是否碰巧知道这些区域是什么? – Paolo 2010-02-10 15:52:16

3

据我所知字体看起来乱码,太阳已经下山了,因为他们没有“开源”和JVM会使用一些默认这是不是很好,从OpenJDK的去除原有的...

+0

是的,这是我们迁移时遇到的最大问题。 – 2010-02-10 23:49:18

+0

经过一些测试,这是我遇到的OpenJDK唯一的问题。 JasperReports几乎不可用。 – 2012-01-04 19:15:55

1

使用OpenJDK的构建已知通过TCK以减少惊喜。

1

一些摆动UI的不匹配完全(金属有这样的人过刚aenough注意填充)。请注意,这是8个月前。

1

linux下的OpenJDK(IcedTea)applets是主要疼痛。我正在为远程调试一段相当生锈的代码而苦苦挣扎几个小时。 Official documentation关于如何附加到浏览器中的小程序根本不适用于我。默认情况下没有Java控制台,顺便说一句。我正在认真考虑复制applet配置并使用JDK内置的applet查看器,而不是试图调试浏览器托管的JVM。

UPD:我不太确定OpenJDK本身没有浏览器插件。也许这最近改变了。

+0

约瑟夫达西在2009年的博客中称,浏览器插件会获得开源(https://blogs.oracle.com/darcy/entry/openjdk_and_the_new_plugin),但它从未如此,并且在2010年7月,他告诉我没有路线图到什么时候。 – damjan 2013-03-11 18:21:23

-1

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

相关问题