InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

The Consumer Java Runtime Environment in Detail

Posted by Geoffrey Wiseman on May 23, 2007

Sections
Development
Topics
Java
Tags
Java SE ,
Java One

On May 8th, 2007, Ethan Nicholas and Dennis Gu announced the Consumer JRE at JavaOne. Since JavaOne, a few more details have been released. In Announcing the Consumer JRE (again!), Ethan Nicholas gave an overview of some of the highlights, including a new installer, performance improvements, improved startup time and a modularized JRE. He also estimated the date by which most of these features will be available:

The Consumer JRE will be a Java 6 update release delivered in the first half of 2008.

Chet Haase followed up with an in-depth post that covers many of these same points, but in detail: Consumer JRE: Leaner, Meaner Java. He indicated that in order to aim for a rapid release, it's important that the changes for the Consumer JRE make changes that do not affect the API. He grouped the changes into these elements: Quickstarter, Java Kernel, Deployment Toolkit, Installer Improvements, Windows Graphics Performance, Nimbus Look and Feel.

On the Quickstarter, Chet Haase argued that the cold startup time (first invocation of the Java runtime environment after a reboot) is the problem with Java startup performance:

The fix, then, is for us to take advantage of the disk cache to make sure that the memory pages on disk that we must read at startup have already been loaded before we need them

When a consumer without a Java runtime environment tries to use a Java applet or application for the first time, the Java Kernel would allow them to download only those portions of the JRE that they need and then start using the applet/application while the rest of the environment downloads in the background. This could result in significant improvements to the download size:

Work is still ongoing on Java Kernel (Ethan Nicholas is madly cranking away at it), but initial results show that it is possible to cut the download size by over 60% for mid-sized Swing applications.

The deployment toolkit "is about enabling a much more powerful and ubiquitous system to run across multiple browsers and platforms, allowing developers to more automatically detect what the user has, what to do about it, and how to launch the application when Java is then installed." The graphics performance will involve using DirectX hardware-accelerated calls for more of the Swing primitives, resulting in better performance for "Swing applications simple and complex". The Nimbus look and feel provides "a more modern look for Swing applications".

Supporting Ethan Nicholas' statement that some of these feature will be available sooner than others, Chet Haase adds:

We will roll out some features as they are available, so that you don't have to wait for early 2008 to get everything here. For example, the improved installation experience should be out in update 2 of Java SE 6, which is currently set for late June.

For more information on Nimbus, the Consumer JRE and Java in general, stay tuned to InfoQ's Java community.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.