如果我从Sun JDK切换到OpenJDK,我必须为自己做好准备吗?

时间:2010-02-10 12:17:25

标签: java openjdk

如果我从Sun JDK切换到OpenJDK,我必须为自己做好准备吗?

经常出现什么问题,这有多难?

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

7 个答案:

答案 0 :(得分:11)

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

Wikipedia entry对此有一个很好的概述:

  

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

     

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

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

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

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

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

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

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

  •   

答案 1 :(得分:3)

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

答案 2 :(得分:2)

由于OpenJDK是Sun项目,基于原始的Java源代码,我不会指望很多问题。事物可能破坏的唯一区域是必须被替换的代码(因为它不能在GPL下发布)或由于新功能而改变(但那些应该与官方JDK中的几乎相同)。 / p>

答案 3 :(得分:1)

使用已知的OpenJDK构建来传递TCK以最大限度地减少意外。

答案 4 :(得分:1)

一些摆动用户界面并没有完全匹配(金属的衬垫已经足够引起注意)。请注意,这是8个月前。

答案 5 :(得分:1)

Linux下的OpenJDK(IcedTea)applet是 MAJOR PAIN 。我正在努力远程调试一段相当生锈的代码已经有几个小时了。关于如何在浏览器中附加到applet的Official documentation根本不适用于我。 BTW默认没有java控制台。我正在认真考虑复制applet配置并使用JDK内置applet viewer而不是尝试调试浏览器托管的JVM。

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

答案 6 :(得分:-1)

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