システム全体のリポジトリ (Windows のみ)


今回のリリースより前は、新しい JRE をインストールすると、古いリリースの JAR およびネイティブライブラリを新しいリリースから表示することはできませんでした。したがって、それらのライブラリに依存するアプリケーションおよびアプレットは動作しないので、開発者はライブラリを新しい JRE に対して再配備する必要がありました。新しいシステム全体のリポジトリは、この問題に対する解決策となります。システム全体のリポジトリは、VM が JAR ライブラリまたはネイティブライブラリを検索できる、JRE の場所に依存しないグローバルな (システム全体の) 場所を提供します。これは Microsoft VM のリポジトリと同様の機能を提供します (「How Does the Virtual Machine Search for Java Classes?」を参照してください)。

注: このリリースでは、システム全体のリポジトリは Java Plug-in および Win32 のみでサポートされます。

新しいシステム全体のリポジトリの場所について、次の表に示します。

ライブラリの型
システム全体の場所
DLL システムパス環境変数内の任意のディレクトリ
信頼されていない JAR <Windows ディレクトリ>\Sun\Java\Deployment\Lib\Untrusted
信頼されている JAR <Windows ディレクトリ>\Sun\Java\Deployment\Lib\Trusted

<Windows ディレクトリ> は、%SystemRoot% とも呼ばれる、Windows がインストールされているドライブにある Windows OS のディレクトリです。

たとえば、Windows XP では、Windows は通常 C ドライブにインストールされるので、ライブラリの場所は次のようになります。

ライブラリの型
システム全体の場所
DLL システムパス変数内にある任意のディレクトリ、たとえば C:\WINDOWS\repository がシステムパス変数で設定されている場合は、C:\WINDOWS\repository
信頼されていない JAR C:\WINDOWS\Sun\Java\Deployment\Lib\Untrusted
信頼されている JAR C:\WINDOWS\Sun\Java\Deployment\Lib\Trusted

次の点に注意してください。

  1. システム全体で信頼されているリポジトリの JAR 内のクラスは拡張クラスローダによりロードされますが、システム全体で信頼されていないリポジトリ の JAR はアプレットクラスローダによりロードされます。したがって前者は AllPermission のアクセス権が与えられ、後者にはデフォルトアプレットのアクセス権しか与えられません。
  2. リポジトリは、バージョンまたは名前空間を制御しません。開発者が配備時にバージョンおよび名前空間の競合を避ける必要があります。
  3. システム全体で信頼されたリポジトリの実装は、システムプロパティ java.ext.dirs に基づいています。ユーザが Java コントロールパネルから独自の java.ext.dirs システムプロパティを選択する場合、Java Plug-in はシステム全体で信頼されたリポジトリの JAR をロードしません。