OpenJDK Cookbook
上QQ阅读APP看书,第一时间看更新

Introduction

OpenJDK 7 is a free and open source implementation of Java Platform, Standard Edition Version 7. At the time of writing this book, it is the latest version of OpenJDK that was ready for the production usage.

Initially, a lot of advanced changes were planned for OpenJDK 7, such as the modular VM and lambda expression support, but due to various technical and organizational reasons, after Sun Microsystems' acquisition by Oracle, most of the new features were postponed for the next versions of OpenJDK. This expedited the release. It reached General Availability status on 28 July 2011 and was the first OpenJDK version released as a Reference Implementation for the Java platform.

The major updates to OpenJDK 7 numbered update 2, update 4, and update 6 were released during the next year. After that, version numbering was changed and the next update 40, which is the latest version at the time of writing, was released in September 2013. The following update 60 was planned for May 2014 and the lifetime of OpenJDK 7 will end with update 80 in early 2015.

OpenJDK 7 release cycle differ from Oracle Java release cycles. Oracle Java updates are released for regular security-related changes and for OpenJDK updates. Oracle security changes are propagated to OpenJDK 7 (and to OpenJDK 6 where applicable) but OpenJDK is not released immediately after that. Instead, releases are done on major changes and cumulative security changes usually contain updated versions of HotSpot VM.

OpenJDK 7 is supported on Linux, Windows, Mac OS X, and Solaris operating systems. Only Windows, Linux, and Mac OS X versions will be discussed further. For both Linux and Windows operating systems, x86 and x86_64 architectures are supported. For Mac OS X only x86_64 is supported. To conform with OpenJDK terminology, the i586 term will be used for x86 architecture and amd64 will be used for the x86_64 one. OpenJDK 7 does not support cross-compilation, so the i586 operating system must be used to build the i586 version and the same is true for amd64. The build process for both architectures is almost the same for Linux version, but differs greatly for the Windows one.

In this chapter, we will use sources from the official OpenJDK 7 update 40 tarball.