libA.jarというファイルをクラスパスフォルダーに配置し、古いファイルの名前を次のように変更するとします。
libA.jar.old
クラスローダーはクラスをロードしますか?
Solaris8でweblogicを使用しています。
ありがとうございました!
宇土
libA.jarというファイルをクラスパスフォルダーに配置し、古いファイルの名前を次のように変更するとします。
libA.jar.old
クラスローダーはクラスをロードしますか?
Solaris8でweblogicを使用しています。
ありがとうございました!
宇土
いいえ。
Java 5以前を使用している場合は、ロードするすべてのクラスとjarファイルに明示的に名前を付ける必要があります。明らかに、古いものであるlibA.jar.oldには名前が付けられていないため、ロードされません。
Java 6を使用している場合は、ワイルドカードマッチングの概念が存在するため、少し話が異なります。
それでも、jar以外のファイルはロードされません。公式サイトからの情報。引用:
クラスパスエントリには、ベース名のワイルドカード文字*を含めることができます。これは、拡張子が.jarまたは.JARのディレクトリ内のすべてのファイルのリストを指定するのと同じと見なされます。たとえば、クラスパスエントリfoo / *は、fooという名前のディレクトリ内のすべてのJARファイルを指定します。
*だけで構成されるクラスパスエントリは、現在のディレクトリ内のすべてのjarファイルのリストに展開されます。*を含むクラスパスエントリは、クラスファイルと一致しません。単一のディレクトリfoo内のクラスとJARファイルの両方を照合するには、foo; foo/*またはfoo/*;fooのいずれかを使用します。選択した順序によって、fooのクラスとリソースがfooのJARファイルの前にロードされるか、またはその逆にロードされるかが決まります。