Deploying the JRE on Windows


  JDK Documentation
These notes contain information for developers who are deploying the Java SE Runtime Environment (JRE) on Microsoft Windows platforms. For general platform-independent information about the Java SE Runtime Environment, see Runtime Environment Notes for Developers.

Installation of Application Launchers

The Java SE Runtime Environment for Microsoft Windows platforms is bundled with its own installer program. By default, the installer places a copy of the runtime environment in the C:\Program Files\Java\jre1.6.0 directory. In addition, if no more recent version is already installed on the machine, the installer puts copies of the java and javaw application-launcher executables in the Microsoft Windows system directory. (The system directory varies depending on the Microsoft Windows version, but is usually either C:\winnt\system32 or C:\windows\system.)

The system directory is on the default system path of the operating systems, so users of your software won't need to modify any paths in order for the launchers to be available for your application. You need only provide users with a command line of the form

javaw -classpath <path to classes or jar file> <main class>
or
javaw -jar <jar file>

Registry Settings

NOTE - The Java SE Runtime Environment has two version numbers -- external version number is 6 and internal version number 1.6.0.
The installation program for the Microsoft Windows version of the Java SE Runtime Environment uses the registry to record path and version information. The application launcher in the system directory uses the registry settings to obtain the location of the Java SE Runtime Environment they are to use when launching an application.

You can consider using the registry settings in the deployment of your applications in the following ways:

  • If your application has an installation program, you can have that program check the registry to determine which version, if any, of the runtime environment already exists on the platform on which your software is being installed. If an appropriate version of the JRE is not already installed, you can prompt the user to download and install the Java SE Runtime Environment, or your installation program can install a copy of the Java SE Runtime Environment that you redistribute with your application.

     

  • If you choose to use your own custom application launcher rather than the application launchers that come with the Java SE Runtime Environment, you can nevertheless have your launcher check the runtime environment's registry settings for the location and version of the runtime environment on the local machine.

Java SE Runtime Environment Registry Settings - When installed, the Java SE Runtime Environment creates the following registry key:

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment

This key contains the following string value which is set to the major.minor version of the installed Java SE Runtime Environment:

 

Note that CurrentVersion is set only if the version being installed is the highest version number on the machine. For example, if JRE 1.5.0 already exists on a machine on which 1.6.0 is being installed (also called 6), then CurrentVersion will be set to 1.6. If 1.6.0 is installed first, and then 1.5.0 is installed, CurrentVersion will remain set to 1.6.

In addition, registry subkeys are created at

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.6
and
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.6.0
These keys contain the following settings information for use by the runtime environment:

 

JavaHome is set to the full path name of the directory in which the Java SE Runtime Environment was installed. RuntimeLib contains the full path name of the Java runtime DLL to use. MicroVersion identifies the integer after the second dot in the internal version number of the Java SE Runtime Environment. For version 1.6.0, the value would be 0, for v1.6.1 it is 1, etc.

In addition, keys are created for Java Plug-in and Java Web Start.

Java Plug-in Registry Settings - The following key is created for Java Plug-in:

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Plugin\1.6.0
This key contains the following values:

 

UseJava2IExplorer is type REG_DWORD. Its value is 1 if JRE is the default VM for IE, 0 if not.

Java Web Start Registry Settings - The following key is created for Java Web Start:

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Web Start\1.6.0
This key contains the following value:

 

The java.exe Executables

Two copies of the java.exe executable are installed. One copy is in the bin directory of the JRE. The second copy is placed in either C:\windows\system or C:\winnt\system32, depending on the system. Because of its location in the system directory, this second copy of java.exe can be launched from any directory location without giving the full path to it.

This second copy of the java.exe executable relies on the CurrentVersion registry setting to determine which registry key to use to look up the location of the JRE. For example, if the CurrentVersion registry is set to 1.6, the java.exe executable in the system directory will look at the HKEY_LOCAL_MACHINE\Software\JavaSoft\Java SE Runtime Environment\1.6 key to determine where the JRE is installed.

Note that the CurrentVersion registry value is that of the most recently installed JRE. If JRE 1.5.0 is installed after JRE 1.6.0, then CurrentVersion will have a value of 1.5, to match the version of the java.exe executable in the system directory.

Native Language Support

If native code support is required on Microsoft Windows platforms, the native library must be located in the executable search PATH.

Icons for Jar-Packaged Applications

You can give your application's Jar file a customized icon. The easiest way to do so is to create a Microsoft Windows shortcut for your application and set its icon to be your custom icon. This can be done by your application's installer program. You can create a custom icon using any icon editor. An icon editor is contained in many commercial development environments such as Visual C++.
Name Default Value
CurrentVersion 1.6
Name Default Value
JavaHome C:\Program Files\Java\jre1.6.0
RuntimeLib C:\Program Files\Java\jre1.6.0\bin\client\jvm.dll
MicroVersion 2
Name Default Value
JavaHome C:\Program Files\Java\jre1.6.0
UseJava2IExplorer 1
Name Default Value
Home C:\Program Files\Java\jre1.6.0\javaws

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.