フォルダーまたは JAR ファイルからの動的クラスのロード
Java では、実行時にクラスをロードする機能はさまざまなアプリケーションにとって不可欠です。この質問は、名前やパッケージ構造に関する事前知識がなくても、フォルダーまたは JAR ファイルからクラスをロードするメカニズムを理解することを目的としています。
URLClassloader は、ディレクトリまたはアーカイブから特定のクラスをロードするためのソリューションを提供します。ただし、クラス名の明示的な指定が必要です。クラス名が不明な場合、このアプローチは効果がありません。
この制限を克服するために、提供されるソリューションでは JarFile クラスと URLClassLoader クラスを利用して、JAR ファイル内に含まれるすべてのクラスをスキャンしてロードします。
JarFile オブジェクトはすべてのエントリの列挙を可能にし、JAR 内の .class ファイルの識別を可能にします。次に、各 .class ファイルは、JAR ファイルを指す URL に基づいて URLClassLoader を使用してロードされます。
このプロセスには、JarEntry オブジェクトの反復処理、エントリ パスからクラス名を抽出すること、および次を使用して対応するクラスをロードすることが含まれます。
Javassist を使用した代替アプローチ
クラス ローダーを使用する代わりに、クラス操作用の人気のあるライブラリである Javassist を使用できます。 ClassPool オブジェクトを初期化すると、JarEntry パスから派生したクラス名を使用して、クラスを表す CtClass を取得できます。
CtClass からは、すべてのメソッド、フィールド、ネストされたクラス、およびクラスのその他の詳細を取得できます。にアクセスし、ロードされたクラスを調べるためのより包括的で反射的なインターフェイスを提供します。
以上がクラスの名前を知らなくても、フォルダーまたは JAR ファイルからクラスを動的にロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。