Java SE 6 is available

After more than two years development time, Sun has announced the release of the Java Platform Standard Edition 6 (Java SE 6, code-named “Mustang”) this month. The runtime environment (JRE6), the development kit (JDK6), documentation and source code can be downloaded directly from Sun at this URL: Simultaneously, Sun has released a new version of its free Java IDE, Netbeans 5.5, with full support for Java SE 6.

Sun is also moving one step closer to making Java open source. Parts of the new Java version were already released under the GNU General Public License in November. The comprehensive Java class library, which constitutes the largest part of the Java platform, will be released under the GPL in the first quarter of 2007. This move will then complete the open-sourcing of Java. In spite of Java becoming open source, the platform and its future development will still be overseen by the JCP Executive Committee, which steers the Java Community Process established in 1998.

One of the most important innovations of Java SE 6 is scripting language integration, which makes it possible to mix dynamically typed scripting languages, such as JavaScript, PHP, Python, or Ruby with Java code. While add-on packages for diverse scripting languages have been available for some time, Java now provides built-in support via a standard interface that conforms to the JSR-223 specification. This provides a standard mechanism to execute scripting languages from within Java and it allows those languages to access Java classes and resources.

Furthermore, Java SE 6 comes with greatly enhanced support for XML web service client applications covering the current specifications for JAX-WS 2.0, JAXB 2.0, STAX and JAXP. It includes new parsing classes and XML to Java object-mapping APIs, which were previously only available in Java EE platform implementations or the Java Web Services Pack. The XML Digital Signatures API allows programmers to secure Java-based Web services by performing cryptographic operations on XML data. The Java-XML Web Service (JAX-WS) 2.0 API updates the library formerly named JAX-RPC. Improvements to Java-XML Binding (JAXB) 2.0 include XML schema support and class binding to a schema. Lastly, the Streaming API for XML (STaX) provides a bi-directional API to read and write XML via a stream of events, including the ability to skip sections, and focus on sub-sections of documents.

A notable new feature primarily aimed at system and tool developers is the new compiler API that allows compiler access from Java programs. With this new API it is possible to compile source code from within a Java application. While this is not a feature used by the typical application developer, it will be a welcome improvement for code-generating frameworks, such as JSP or PHP, simplifying the interactive process of creating code.

Java SE 6 incorporates many important improvements for the development of GUI desktop applications, in particular by giving Java applications access to features available on the native OS desktop on basis of JDesktop Integration Components (JDIC). This includes, for example, support for splash screens, tool tips, pop-up menus, icons, and system tray, support for native file extensions, and integration of client browser and email applications. Numerous enhancements were made to JFC, Java2D, and Swing, such as a new Windows API, improved drag-and-drop operations, true double buffering for smooth graphic transitions, just to name a few. A new layout manager component based on the NetBeans Graphical Interface Builder (previously named “Matisse”) offers a visual development environment which makes it possible to “paint” graphical user interfaces.

Other new features in Java SE 6 include new monitoring and management tools providing more diagnostic information, JDBC 4.0 with out-of-the-box Java DB, pluggable annotations, and new security APIs.