As mentioned in previous posts, and in Weiqi Gao's Game Changing Move post, the purpose of Java SE 6 Update N is to solve the JRE deployment and performance issues that have hindered the adoption of Java rich clients. This is great news for JavaFX Script as it is dependent upon the JRE (Java Runtime Environment) being present on the client machine. Java Kernel, which was the remaining feature of Java SE 6 Update N to be implemented, is now in place. This feature allows the JRE to be segmented into small bundles, each of which downloads and installs quickly. The first bundles provides just enough of the JRE to run a simple "Hello World" program. Java Kernel will then proactively download and install the remaining bundles. The major benefit of this approach is that the user doesn't have to wait for a large JRE download before running a Java or JavaFX Script program, because the bundles that are needed by the program are downloaded in the background as the program is starting up. Note: When I tried this, 35 bundles were downloaded, ranging in size from 52 KB to 2610 KB. Here is the message box that appeared when I invoked a JavaFX Script application via Java Web Start just after the Java Kernel had been installed:
Please also note that even if a Java or JavaFX program is not invoked, the Java Kernel will continue installing bundles until the entire JRE is installed.
For more information, see the Java Kernel FAQ. Also, you can obtain the latest release of Java SE 6 Update N from this page. Of course, if you download and install Java SE 6 Runtime Update N build 10, you won't see the Java Kernel in action, because its purpose is to download the JRE. If you want to observe the Java Kernel in action, just download the Java SE 6 Runtime (JRE) Update N build 10 Kernel Installer from that page (after having removed Java SE 6 Update N if it was already on your machine). The FAQ referenced above explains how to tell when the Java Kernel has not yet finished downloading the complete JRE.
So here's the really neat part for compiled JavaFX Script: The plan is to make bundles out of the JavaFX platform jar files, as well as to leverage the automatic update facility of Java SE 6 Update N to keep the JavaFX jar files current. As Chris Oliver puts it, "we have to be competitive with the Flash experience".
Here are a couple of other interesting JavaFX Script-related things to check out:
- A JavaFX Script tutorial from IBM
- Robert Eckstein's video blog on a few of his favorite things about JavaFX Script. I think that he should have gotten the von Trapp family to sing about them in the background ;-)
Compiled JavaFX Script and Java SE 6 Update N are quickly coming together to the point where we'll soon have fast deploying and executing JavaFX Script RIAs (rich internet applications) that are simple, elegant, and leverage the power of Java. The next few months are going to be exciting, and in my opinion, will revolutionize (and greatly simplify) the way we develop internet applications.
JavaFX Script Boot Camp Announcement
As a heads-up, I will be offering a JavaFX Script 2.5 day "boot camp" on Wednesday, April 9 through Friday, April 11, 2008 (ending at noon) in Indianapolis, Indiana. This course is designed to get you quickly up to speed in JavaFX Script application development. A primary reference for this course is my JavaFX Script book, but the course has its own syllabus which includes material covered in the book as well as up to the minute developments in compiled JavaFX Script. Registration will open soon, and for this pilot class I am accepting 12 students. The cost of this pilot class will be 900 USD per student. Additional students from the same organization will be 600 USD. You'll need to bring your laptop computer with the latest versions of the JavaFX Script downloads (which I'll specify in more detail as the class date approaches). The prerequisite for the class will be the completion of a JavaFX Script programming assignment that I'll post soon to this weblog. I'm looking forward to teaching this class and hope that you can attend!
More details to follow,
Jim Weaver
JavaFX Script: Dynamic Java Scripting for Rich Internet/Client-side Applications
Immediate eBook (PDF) download available at the book's Apress site
Matthew,
You are right on target. If the user doesn't have this JRE, then the Java Kernel is installed as a result of invoking Java or JavaFX program. The order in which the bundles are installed is dictated by the needs of the Java or JavaFX program. As it has a chance, the Java Kernel will then install the rest of the JRE. This way, the program comes up quickly on the subset of the JRE that it needs, and the users machine ends up with the entire JRE (which automatically keeps itself updated).
Thanks for the great question, Matthew!
Jim Weaver
Posted by: Jim Weaver | January 16, 2008 at 07:32 PM
Hi,
I have had a 'splinter in my mind' for some time and maybe you can help me.
I've been programming with Java for going on 9 years now. It's my tool/language of choice.
In the past 3 years I have been doing Rich Internet Applications using Flex, with Java/J2EE back-ends.
I used to write Applets back in 1999/2000 when Applets hadn't been totally condemned as yet.
I've seen the financial industry push the envelope and continue with Applets with great success. Although that is because those who really wanted to run those applications didn't mind the big JRE download.
So here's the splinter.
I had heard some time back about Sun splitting the JRE so you might 'get what you need' and if you wanted a lightweight run-time to run your Applets you may be obliged.
Is this the case?
And do you think that it is possible that Applets may come back and give Flex and Silverlight a run for their money?
Regards,
Matthew
Brisbane
Australia
Posted by: Matthew | January 16, 2008 at 06:48 PM