What is OpenJDK

OpenJDK是由Sun Microsystems启动的一项开源计划,旨在提供Java平台的免费实现。该项目于2006年启动,并逐步开放了Java HotSpot虚拟机、编译器及Java类库等组件的源代码。通过社区的努力,OpenJDK逐渐去除专有代码,实现了完全自由软件的目标。

From Wikipedia, the free encyclopedia

http://en.wikipedia.org/wiki/OpenJDK

 

OpenJDK (aka Open Java Development Kit ) is a free and open source implementation of the Java programming language .[clarification needed ] It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GNU General Public License (GPL) with a linking exception , which exempts components of the Java class library from the GPL licensing terms.

 

History

Sun's promise and initial release

Sun announced in JavaOne 2006 that Java would become open-source software, and on October 25, 2006, at the Oracle OpenWorld conference, Jonathan Schwartz said that the company intended to announce the open-sourcing of the core Java Platform within 30 to 60 days.

Sun released the Java HotSpot virtual machine and compiler as free software under the GNU General Public License on November 13, 2006, with a promise that the rest of the JDK (which includes the Java Runtime Environment ) would be placed under the GPL by March 2007, "except for a few components that Sun does not have the right to publish in source form under the GPL". According to computer scientist and free-software advocate Richard Stallman , this would end the "Java trap", the vendor lock-in that he argues applied to Java and programs written in Java. Software entrepreneur Mark Shuttleworth called the initial press announcement "A real milestone for the free software community ". [not in citation given ]

Release of the class library

Following their promise to release a Java Development Kit (JDK) based almost completely on free and open source code in the first half of 2007 , Sun released the complete source code of the Java Class Library under the GPL on May 8, 2007, except for some limited parts that some third parties licensed to Sun that rejected the terms of the GPL. Included in the list of encumbered parts were several major components of the Java graphical user interface (GUI). Sun stated that it planned to replace the remaining proprietary components with alternative implementations and to make the class library completely free.

Community improvements

On November 5, 2007, Red Hat announced an agreement with Sun, signing Sun's broad contributor agreement (which covers participation in all Sun-led free and open source software projects by all Red Hat engineers) and Sun's OpenJDK Community TCK License Agreement (which gives the company access to the test suite that determines whether a project based on openJDK complies with the Java SE 6 specification).

Also on November 2007, the Porters Group was created on OpenJDK to aid in efforts to port OpenJDK to different processor architectures and operating systems . The BSD porting projects , led by Kurt Miller and Greg Lewis and the Mac OS X porting project (based on the BSD one) SoyLatte led by Landon Fuller  have expressed interest in joining OpenJDK via the Porters Group and as of January 2008 are part of the mailing list discussions. Another project pending formalization on the Porters Group is the Haiku Java Team, led by Bryan Varner.

On December 2007, Sun moved the revision control of OpenJDK from TeamWare to Mercurial , as part of the process of releasing it to open source communities.

OpenJDK has comparatively strict procedures of accepting code contributions: every proposed contribution must be reviewed by two of Sun's engineers and the contributor must have signed the Sun/Oracle Contributor Agreement.(SCA/OCA ) Preferably, there should also be a JTreg test demonstrating that the bug has been fixed. Initially, the external patch submission process was and commits to the codebase were only made by Sun engineers, until September 2008 . The process has improved and, as of 2010[update] , simple patches and backports from OpenJDK7 to OpenJDK6 can take place within hours rather than days.

On 2010-10-11, IBM and Oracle announced that both companies will collaborate to further develop OpenJDK.

On 2010-11-12, Apple and Oracle announced the OpenJDK project for Mac OS X .

Status

Supported JDK versions

OpenJDK was initially based only on the JDK 7.0 version of the Java platform.

Since February 15, 2008, there are two separate OpenJDK projects:

  • The main OpenJDK project, which is based on the JDK 7.0 version of the Java platform,
  • The JDK 6 project, which provides an Open-source version of Java 6.0 .

Compiler and Virtual Machine

Sun's Java compiler, javac , and HotSpot (the virtual machine ), are now under a GPL license.

Class library

As of the first May 2007 release, 4% of the OpenJDK class library remained proprietary . By the appearance of OpenJDK 6 in May 2008, less than 1% (the SNMP implementation , which is not part of the Java specification) remained , making it possible to build OpenJDK without any binary plugs The binary plug requirement was later dropped from OpenJDK7 as part of b53 in April 2009 .

This was made possible, over the course of the first year, by the work of Sun Microsystems and the OpenJDK community. Each encumberance was either released as free and open source software or replaced with an alternative:

  • All the audio engine code, including the software synthesizer , has been released as open source. The proprietary software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called Gervill   ,
  • All cryptography classes used in the class library have been released as open source ,
  • The code that scales and rasterizes fonts has been replaced by FreeType
  • The native color management system has been replaced by LittleCMS . There is a pluggable layer in the JDK, so that the proprietary version can use the old color management system and OpenJDK can use LittleCMS.
  • The anti-aliasing graphics rasterizer code has been replaced by the open source Pisces renderer used in the phoneME project. This code is fully functional, but still needs some performance enhancements

Sun has made continued promises about releasing their plugin[clarification needed ] and Web Start implementation as part of OpenJDK, but have so far failed to deliver . The only currently available free plugin and Web Start implementation is that provided by IcedTea.

IcedTea and Inclusion in Software Distributions

To be able to bundle OpenJDK in Fedora and other free Linux distributions, OpenJDK needed to be buildable using only free software components. Due to the encumbered components in the class library and implicit assumptions within the build system that the JDK being used to build OpenJDK was a Sun JDK , this was not possible. In order to achieve this goal, a project called IcedTea was started by Red Hat in June 2007. It began life as an OpenJDK/GNU Classpath hybrid that could be used to bootstrap OpenJDK, replacing the encumbrances with code from GNU Classpath.

On November 5, 2007, Red Hat signed both the Sun Contributor Agreement and the OpenJDK Community TCK License. One of the first benefits of this agreement is tighter alignment with the IcedTea project, which brings together Fedora , the Linux distribution, and JBoss , the application server, technologies in a Linux environment. IcedTea is providing free software alternatives for the few remaining proprietary sections in the OpenJDK project.

In May 2008, the Fedora 9 and Ubuntu 8.04 distributions included IcedTea 6, based completely on free and open source code. Fedora 9 was the first version to ship with IcedTea6, based on the OpenJDK6 sources from Sun rather than OpenJDK7. It was also the first to use OpenJDK for the package name (via the OpenJDK trademark agreement ) instead of IcedTea. Ubuntu also first packaged IcedTea7 before later moving to IcedTea6. Packages for IcedTea6 were also created for Debian and included in lenny . On July 12, 2008, Debian accepted OpenJDK-6 in unstabl , and it is now in stable . OpenJDK is also available on openSUSE , Red Hat Enterprise Linux and RHEL derivatives such as CentOS .

In June 2008, Red Hat announced that the packaged binaries for OpenJDK on Fedora 9 , built using IcedTea 6, had passed the Technology Compatibility Kit tests and could claim to be a fully compatible Java 6 implementation. In July 2009, an IcedTea 6 binary build for Ubuntu 9.04 passed all of the compatibility tests in the Java SE 6 JCK .

Since August 2008, OpenJDK 7 is runnable on Mac OS X and other BSD distributions.

Collaboration with IBM

On October 11, 2010, IBM , by far the biggest participant in the Apache Harmony project, decided to join Oracle on the OpenJDK project, effectively shifting its efforts from Harmony to OpenJDK . Bob Sutor, IBM's head of Linux and open source, blogged that "IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK". .

Java on Mac OS X

On November 12, 2010, just three weeks after deprecating its own Java runtime port , Apple and Oracle announced the OpenJDK project for Mac OS X. Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client .

内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值