Java 7u4, JavaFX 2.1, and NetBeans 7.1.2
Today, Oracle released a bunch of Java software, including Java SE 7 update 4, JavaFX 2.1, and NetBeans 7.1.2. There are some important tidbits to note about all of these, so I wanted to highlight them here.
- Consolidation: The Foundation for IT Business Transformation
- Build a Business Case: Developing Custom Apps
- Smarter Process: Five Ways to Make Your Day-to-Day Operations Better, Faster and More Measurable
- How to Improve Customer Analytics: Best Practices
Java SE 7
First, this update of Java SE 7 is the first with official support for the Garbage First garbage collector, also called G1. Why is this important? The world has mostly outgrown the older collectors in Java, namely the Parallel and CMS collectors, which had significant trouble with heaps at or larger than 4 gigabytes. After that, garbage collection pauses could potentially take so long as to adversely impact a running Java application. Known as latency, this would result in monetary loss for some financial applications, inconsistent user response in web and GUI applications, and various other issues on a case-by-case basis.
Garbage First grew out of the need to support larger heaps, and to minimize or even remove pauses completely. These are two diametrically opposed requirements, mind you, and this is no easy feat. Nonetheless, G1 offers low-pause, large heap support out of the box. (In the past, I've written in detail about an early version of G1.) If your application has low-latency requirements, or your heap requirements are ever-growing, give G1 a try. This is straight from the release notes: "Applications that require a large heap, have a big active data set, have bursty or non-uniform workloads or suffer from long Garbage Collection induced latencies should benefit from switching to G1."
Additionally, this is the first official Java release from Oracle that supports Mac OS X. You'll notice that the Mac is now listed in the list of JDK downloads, along with Windows, Linux, and Solaris. It's important to note that with this version of Java 7, the plugin and Java Webstart are not supported. This means that if you need to run a Java Applet or launch an application using Webstart, you'll need to maintain your Java SE 6 installation on the Mac, and use the Java Preferences app to set Java 6 as the first version of Java to use (see the screen shot below).
Some will be excited to hear that this is the first version of Java to bear the fruits of the Sun HotSpot and Oracle JRockit integration. In fact, Oracle has stated that this release features a brand new JVM implementation, which includes better diagnostics, crash analysis (comforting, I know), and some changes to reflection. You can read more about this release, including the platform support, here. And then you can download it here and try it for yourself.
Next, with this release of Java SE 7, JavaFX has been included as a co-install for the first time, and has itself been upgraded to version 2.1. New features include (from the release notes):
- Playback support for digital media stored in the MPEG-4 multimedia container format containing H.264/AVC video and Advanced Audio Coding (AAC) audio.
- The ability to use Windows-style LCD sub-pixel rendering. All the JavaFX UI controls will be LCD-text enabled by default on Windows, as will WebView, the Webkit-based node for rendering Web content. Applications can also opt-in to use LCD text on the low-level scenegraph text node by a new API.
- Additional user interface enhancements including controls for combo box, stacked chart, and application-wide menu bar.
- JavaFX Scene Builder 1.0 Early Access, which is a visual layout tool for the JavaFX platform where you drag-and-drop components to create GUI applications.
Of course, there's continued Linux support as well, although that's still in beta form.
Finally, NetBeans has also been updated to support the changes in the Java SE and JavaFX releases. Specifically, there's a new Java debugger, improved PHP debugging, integrated GitHub support, enhanced support for SVN and Mercurial, and support for:
- JavaFX GUI application development
- Glassfish 3.1.2
- WebLogic with Java EE 6
There's a long list of other improvements you can find here.
So have fun checking out all the new-ness these Java and related releases have to offer. I, for one, am very excited to dive into the changes surfacing from the merging of the Oracle and Sun JVMs.