Signed, sealed, delivered
JavaFX 2.2 gets native package creation
Some good news for Java's RIA platform, JavaFX, as Oracle have announced that the latest iteration, JavaFX 2.2 will include native packaging for numerous platforms.
It's been a long-maligned stumbling block for the technology, giving users a new way to install and run their application without any external dependencies on a system JRE or FX SDK. The process will be enabled by an application, which can automatically package exe and msi for Windows, dmg for Mac OS X (as shown below) and rpm and zip for Linux systems. As the screenshot below shows, it's just a simple drag-and-drop process for the Mac version at least.
As the Oracle blogpost details, the motivation behind this new (and frankly badly-needed) approach is for a number of reasons.
JavaFX 2 applications are easy to distribute as a standalone application or as an application deployed on the web (embedded in the web page or as link to launch application from the webpage). JavaFX packaging tools, such as ant tasks and javafxpackager utility, simplify the creation of deployment packages even further. Why add new deployment options?
JavaFX applications have implicit dependency on the availability of Java and JavaFX runtimes, and while existing deployment methods provide a means to validate the system requirements are met -- and even guide the user to perform required installation/upgrades -- they do not fully address all of the important scenarios.
The native packaging comes in the form of a wrapper around the JavaFX application - including the code and resources, Java and JavaFX runtimes, the launcher and metadata. The new method claims to offer 'no-hassle compatiblity' to make deployment easier on new systems, and to make it easy to package for the Mac App Store, for example. However, cross-platform packaging could be problematic with the user needing to run the process through all platforms separately, plus the issue of extra bulk with runtime included in the bargain. But eliminating the admin rights part is welcomed.
Another plus point is the fact that the team say there aren't any plans to deprecate the other deployment methods, keeping everyone happy. Support is already included in the developer preview of Java 7 Update 6 build 14 and onwards. Another good step made for JavaFX picking up developer interest. Check out the comments on that blog too - an interesting debate to be had.