java开源是什么意思,java开源技术有哪些

  java开源是什么意思,java开源技术有哪些

  在2006年11月13日的JavaOne大会上,Sun公司宣布最终将Java作为开源开放,并在随后的一年多时间里,在GPL V2 (GNU通用公共许可V2)协议下将JDK的所有部分向公众发布,并成立了OpenJDK组织来独立管理这些源代码。OpenJDK几乎包含了Sun的所有代码,除了少量的属性代码(Sun本身没有权限开源)。OpenJDK的质量总监曾表示,在JDK 1.7中,Sun JDK和OpenJDK的代码除了代码文件头中的版权注释之外基本相同,所以OpenJDK 7和Sun JDK 1.7本质上是同一代码库开发的产品。

  如何解决写爬虫IP受阻的问题?立即使用。

  2006年11月13日,Sun Microsystems正式开源Java。事实上,Java的源代码在发布的第一天就可以访问到。这个策略帮助Java在早期推动了平台的建立。

  Java之父詹姆斯高斯林说,他们开放源代码的目的是让社区帮助进行安全分析、错误报告、性能增强以及对远程案例的理解。Java最早的许可证允许内部使用源代码,但不能分发。

  当时IBM呼吁将Java捐赠给Apache Software Foundation,在Apache许可下分发,但Sun最终决定在GPL许可下开源Java。GPL许可证要求公开发布衍生版本。高斯林说,这可以让Java更好地适应开源社区。2010年孙被甲骨文收购,Java也落入甲骨文之手,甲骨文引领了Java的进化。

  JDK 1.6发布后,由于代码复杂度的增加、JDK的开源、JavaFX的开发、经济危机以及对Sun的收购,Sun在JDK开发以外的事情上花费了大量资源,JDK的更新也没有保持两年发布一个主要版本的开发速度。到目前为止,JDK 1.6已经发布了37个更新版本,最新版本是Java SE 6 Update 37,发布于2012年10月16日。

  OpenJDK最初是SunMicrosystems为Java平台打造的Java开发环境(JDK)开源版本,完全免费开源。在2006年的JavaOne大会上,Sun Microsystems宣布向Java开放源代码,并于2009年4月15日正式发布了OpenJDK。甲骨文在2010年接手SunMicrosystem后接手了这个项目。

  java在发行过程中分为了openjdk和sun/oracle JDK两种。

  JDK和OpenJDK之间的差异可以总结如下:

  不同的授权协议:

  Openjdk是由GPL V2协议发布的,而jdk是由JRL发布的。虽然两个协议都是开源的,但是使用上的区别是GPL V2可以用于商业,而JRL只能用于个人研究。

  OpenJDK不包括部署功能:

  部署的功能有:浏览器插件、Java Web Start、Java控制面板,这些都是Openjdk中没有的。

  OpenJDK源代码不完整:

  我们很容易想到,在使用GPL协议的Openjdk中,sun jdk的部分源代码因为产权问题不能被openjdk使用,而最重要的部分是SNMP的代码,SNMP是JMX的可选组件。所以这些未开放的源代码会被用作OpenJDK编译的plug,你可以选择不使用plug。Icedtea针对这些不完整的部分开发了相同的函数源代码(OpenJDK6),使得OpenJDK更加完整。

  部分源代码被开源代码取代:

  由于产权的问题,很多产权不是SUN的源代码都被一些功能相同的开源代码替代了,比如字体栅格化引擎,换成了Free Type。

  Openjdk只包含最简洁的jdk:

  OpenJDK不包含其他软件包,如Rhino Java DB JAXP…….而且能分开的软件包都尽量分开,不过大部分都是免费软件,可以自己下载加入。

  无法使用Java商标:

  这个很好理解。在安装openjdk的机器上,输入“java -version”显示openjdk,但如果是带Icedtea补丁的openjdk,则显示java。(未验证)

  总之,Java系统中还有很多不自由的元素,源代码的开发也不够彻底。我希望Oracle能让JCP变得更加自由和开放,这也是所有Java社区的希望。

  至此,我基本明白了java为什么会有开源或闭源之争,也知道了误解的原因。个人认为java还是开源的,但是开源的程度不是100%。

  Oracle/Sun JDK包含的JVM是HotSpotVM,HotSpot VM只有非常非常少的函数不在OpenJDK中,那部分在Oracle的内部代码库中。这些私有部分都不涉及JVM的核心功能。因此,Oracle/Sun JDK和OpenJDK实际上使用相同的代码库。

  从一个Oracle内部员工的角度来看,当他想要构建OracleJDK时,他还需要从http://hg.openjdk.java.net签出OpenJDK,然后从Oracle内部代码库签出私有部分,将其放在OpenJDK代码下的特定目录中,然后进行构建。

  值得注意的是,Oracle JDK只发布二进制安装包,而OpenJDK只发布源代码。java是开源的吗?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: