| Documentation Contents

# 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.

Copyright © 1993, 2010, Oracle and/or its affiliates. All rights reserved. Please send comments using this Feedback page. | Java Technology