javaコードベースに "com.example"というパッケージがあるとします。クラスローダはまだロードされていない場合 - 実行時にどのクラスもロードされていなくても、クラスローダーがパッケージをロードするように強制する方法はありますか?
、我々は
Package p = Package.getPackage("com.example"); //(returns null)
かさえ問題がある
Packages[] ps = Package.getPackages();
を呼び出すことにより、すべてのパッケージの一覧を取得を呼び出すことによって、このパッケージを取得することができますこれらの関数呼び出しでは使用できません。私たちはこのように、最初のパッケージに力負荷によってパッケージをロードするためのクラスのいずれかをそれを強制することができます
this.getClass().getClassLoader().loadClass("com.example.SomeClass");
Package p = Package.getPackage("com.example"); //(returns non-null)
をしかし、これはハックされ、事前に属するいくつかのクラスの名前を知る必要がその包み。
ですから、ClassLoaderが何かを行ったかどうかにかかわらず、名前でPackageのインスタンスを取得する方法はありますか?この状況でクラスローディング/パッケージがどのように正しく動作するかについての私の前提はありますか?
https://stackoverflow.com/questions/3455267/why-does-class-getpackage-return-the-same-package-for-classes-from-different-pacの用心 – Vadzim