Skip to main content

Intervention

Posted by editor on May 15, 2007 at 10:19 AM EDT

Fixing Java deployment

One of the JavaOne technical sessions I was lucky enough to get away from the pavilion floor to attend was TS-3290: Easy Deployment Is Finally Here. Slides aren't online yet, and not too many people have blogged it, but it did come up on the Java Posse Google Group, when some members were complaining about the lack of news on fixing Java's client-side user experience problems. As Josh Marinacci pointed out, this session offered a number of near-term approaches that hope to improve the end-user deployment story.

Rather than offering a single big-bang fix, the session showed a number of new features that can be used by themselves or combined. The first is a JavaScript library, which will be importable from a yet-to-be announced public address, that lets you check the currently-installed version of Java (if any), and drive the user to a download page if their version is too low. This works across all platforms, but has significant limitations, such as only reporting major versions, and not specific updates (e.g., 1.5 instead of 1.5.0_07). Somewhat more ambitious is a getjava.exe command-line executable that can report all installed versions of java, down to the last sub-minor version, and download and install newer versions. As the .exe indicates, this is Windows-only -- the Mac deployment story is very different, as Apple generally couples its Java releases to a minimum version of the OS, and delivers Java updates via its usual "Software Update" mechanism. Linux is deliberately ignored, apparently because of its rarity as a desktop OS, the presumed tech-savvy of its users, or maybe because the open-source community is expected to figure out for itself how best to distribute Java updates on specific Linux distros.

Another announcement from this session was a set of efforts to improve start-up time for Java. Certain "cheap" options were dismissed out of hand. For example, loading the entire JVM into RAM early (e.g., at startup) was rejected because of its negative side-effects: increasing VM page-outs and consuming resources unnecessarily. The new plan will apparently get the essential Java bits into the disk cache, so that when Java's needed, it can be loaded more quickly.

The room was pretty full, so I'm sure other attendees can catch us up in the comments as to other interesting parts of this session. And what do you think? Will better end-user installability and maintainability of the JRE help Java regain its footing on the desktop? Will disk cache hackery make applets and applications load faster? And what am I supposed to do with all these .jnlp files? Comment section is below: have at it...


Feature Articles will be updated Thursday, but we updated that space today with some of the podcasts that went out during JavaOne week, in case you missed them: Java Mobility Podcast 3: JavaOne 2007 Activities and the most-recently fed Community Corner mini-talk, j1-2k7-mtH03: Substance Look and Feel with Kirill Grouchnikov.


In Java Today, Bryan Young's blog aspires to put JavaFX in Perspective: "The large number of discussion about JavaFX over the last few days seems be very polarized. So far I have only read two opinions repeated over and over: JavaFX is the competitor to Flash and SilverLight that we've all been waiting for, andJavaFX is a weak attempt to cash in on the recent SilverLight announcements and has no chance for success. What most people don't seem to get, is that JavaFX isn't even in the same market as Flash and SilverLight."

Sun today announced the immediate availability of the Milestone Release (MR2) of the phoneME Feature project in the open source Mobile & Embedded Community. MR2 also contains a high performance implementation of Java bindings for the OpenGL ES API, which provides access to high-end 3D graphic functionality on the device. These capabilities facilitate the creation of graphically rich and compelling entertainment, business, and social networking mobile applications.

ONJava editor David Bock managed to find time at JavaOne to conduct An Interview with Robert Brewin: "If you have been paying attention to any of the news from Sun lately, Robert Brewin is probably not a stranger to you. Robert has been strategically involved in if not outright responsible for some of the major announcements from Sun, from the open sourcing of the JDK, to the embracing of scripting languages like Ruby, and most recently this week's announcements of JavaFX Script and the JavaFX Mobile platform. I had the chance to sit down with Bob and talk to him about JavaFX Script, JavaFX Mobile, the announcement of the new consumer-focused JRE, and several other impressions and events from JavaOne."


In today's Weblogs, Ed Burns describes the process by which the JSF Expert Group has laid out their to-do list in JSF 2.0 EG Kick Off Meeting: Buy a Feature, "a description of the JSF 2.0 EG Kick-Off meeting where we played an Innovation Game to help discover our priorities."

David Herron wants to know What are your thoughts on the OpenJDK project: "I'm interested in what y'all think about the OpenJDK project. I talked with a lot of people last week at JavaONE, so I heard some thoughts and feedback."

"When John Gage asks, you never say 'no'," and that's why Kirill Grouchnikov has put together a list of 20 good people he met at the show, in JavaOne - it's all about the people.


Hinkmond Wong has an announcement of a new ME project in today's Forums. In Re: phoneme advanced based on gtk, he writes: "I'm also working on a phoneME Personal Profile port for the Nokia N800. Since the code will be shared code, you can participate in helping with this port so that you can use it for your purpose also. The GTK port branch I created is at: https://phoneme.dev.java.net/svn/phoneme/components/cdc/branches/hinkmond-pp-gtk. Watch the commit log messages there for the status. I haven't started committing the changes yet, so you will get compilation errors."

msherbert has memory problems and thinking about Forcing "Mark Sweep" Garbage Collection. "Is there a way to cause this "MarkSweep"; to occur more frequently? I have read that explicitly calling system.gc() in my application is discouraged, and may not even cause any garbage collection to occur. (Although it appears that JConsole is somehow forcing it to occur.) I have also seen it suggested that I could tweak some of the JVM parameters for heap size and ratios, but this approach seems difficult and problematic for my application. I realize that explicitly forcing MarkSweep collections may cause noticeable pauses in my application. Although that behavior is not ideal, it is tolerable -- especially if I can control when the pauses occur."

jbeaudry is trying to figure out what to do next with JAXB, in Relationship: value class, interface and implementation. "What is a good primer to understand the relationship between the value classes generated by the "xjc.bat|sh" script and the full blown class/interface/implementation trilogy created by the XJC ant task? According to a post by kohsuke, the behavior of the scripts is desired. But I'm too green to understand what he means by "use the global bindings". How would one do that? Under what set of circumstances would you want to use the global bindings versus the value classes? I've perused the JAXB 2.1 spec without much success and was hoping for a shorter primer."


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Fixing Java deployment