The JVM Install Prompt

Many years ago, Microsoft developed an implementation of a Java Virtual Machine to run Java content. Internet Explorer 5 included code that would download and install the JVM (if needed) when a user encountered Java content on the web. After some time, support was discontinued for the Microsoft JVM, and no further updates were made available. The Microsoft JVM should no longer be used, as security patches are no longer released for it-- installation is blocked on Vista and Windows 7.

To help ensure that Internet Explorer users still are able to recognize when a page requires a JVM, the existing Microsoft JVM install code in IE was replaced with a dialog box that helps direct the user toward an available JVM (namely, Sun Microsystems’ implementation).

That dialog box looks like this:

Install Java Prompt

If you click the “More Info” button, you are taken to a web page explaining how to install the Sun Java Virtual Machine.

When you check the “Do not show this message again” box, Internet Explorer stores this preference in the registry. It does so by creating a registry string named {08B0e5c0-4FCB-11CF-AAA5-00401C608501} inside the HKCU\Software\Microsoft\Active Setup\Declined Install On Demand IEv5\ branch.

If you decide not to install a JVM, you may quickly grow tired of this modal dialog box and thus tick the “Do not show this message again” box. Subsequently, IE will never show this prompt again.

Unfortunately, depending on how pages using Java Applets are constructed, this may result in a confusing user-experience. Consider, for instance, this National Ice Center page which requires Java. When you visit this page without a JVM installed, you will see the following information bar:

Misleading Information Bar

The text of this information bar is misleading—the page doesn’t use an ActiveX control—the prompt is merely a side-effect of how Applet support was built into IE. Unfortunately, there’s no indication that this prompt is really related to Java. If you choose “Install This Add-on” from the Information bar’s menu, you’ll see another misleading dialog box:

Misleading Authenticode Dialog

Fortunately, the National Ice Center page also includes some fallback text in the Applet tag so that if the Applet cannot be rendered, the page itself will explain that Java is required:

<APPLET>
<PARAM></PARAM> <PARAM></PARAM><PARAM></PARAM>
<b>You must install Java to use this page!</b>
</APPLET>

Additionally, if you develop your page using an OBJECT tag with an APPLET tag embedded within, Internet Explorer will show only the “You need Java” dialog, and will not display the misleading ActiveX information bar.

-Eric