System-Wide Repository (Windows only)


Previous to this release, when a new JRE was installed, JAR and native libraries for the old release were not visible to the new one. Thus applications and applets that relied on those libraries would not work, and developers were forced to redeploy their libraries to the new JRE. The new System-Wide Repository is the solution to that problem. It provides a global or system-wide location where the VM can search for libraries, JAR or native, indepenent of the JRE location. It provides functionality similar to the repository in the Microsoft VM (see How Does the Virtual Machine Search for Java Classes?).

Note: In this release the system-wide repository is supported only by Java Plug-in and only on Windows.

The table below shows the location of the new System-Wide Repository:

Type of Library
System-Wide Location
DLL Any directory in the System Path environment variable.
Untrusted JAR <Windows Directory>\Sun\Java\Deployment\Lib\Untrusted
Trusted JAR <Windows Directory>\Sun\Java\Deployment\Lib\Trusted

<Windows Directory> is the Windows OS directory on the drive where Windows was installed (also called %SystemRoot%).

For example, on Windows XP, where Windows has been installed on the C drive (typical), the locations of these libraries would be as follows:

Type of Library
System-Wide Location
DLL Any directory in the System Path variable; e.g., C:\WINDOWS\repository if C:\WINDOWS\repository has been set in the System Path variable.
Untrusted JAR C:\WINDOWS\Sun\Java\Deployment\Lib\Untrusted
Trusted JAR C:\WINDOWS\Sun\Java\Deployment\Lib\Trusted

Note the following:

  1. The classes in the JARS from the system-wide trusted repository are loaded by the extension class loader, whereas the classes in the JARs from system-wide untrusted repository are loaded by the applet class loader. Thus the former classes are given the AllPermission permissions, while the latter are given only default applet permissions.
  2. The repository does not provide version or namespaces control. It is up to the deployer to avoid version and namespaces conflicts at deployment time.
  3. The system-wide trusted repository implementation is based on the system property java.ext.dirs. If the user selects his/her own java.ext.dirs system property via the Java Control Panel, the JARs in the system-wide trusted repository will not be loaded by Java Plug-in.