ディレクトリにアドレスを提供していても、そのディレクトリ内の情報がない場合は、そのディレクトリにクラスが含まれていてクラスにアクセスできるかどうかを調べることができますvia URLClassLoader
ディレクトリの内容を知らずにディレクトリからクラスにアクセスする
私は現在のディレクトリのアドレスとURLの配列を作成しています:
URL [] urls = new URL[1];
urls[0] = new File(address).toURI().toURL();
URLClassLoader urlClassLoader = new URLClassLoader(urls);
しかし、私は何を知っていないので、でも、このアプローチで、私はURLClassLoader
オブジェクトからクラスにアクセスすることはできませんクラスは、右か?呼び出されますか?
[ファイルツリーを歩く](https://docs.oracle.com/javase/tutorial/essential/io/walk.html)と、「.class」ファイルをロードするのはどうですか? –
Javaが意図的にパッケージ内のクラスを列挙する方法を提供していないということは間違いありません。ローダーを覗いて、ディレクトリを取得し、.classファイルを列挙するGuavaユーティリティがあります。 – bmargulies
私はあなたがこれを必要としているのかどうかはわかりませんが、発見可能なクラスにインターフェイスを実装させ、そのインターフェイスをサービスプロバイダインターフェイスにすることでより良いサービスになると思われます。[ServiceLoaderドキュメント](https:// docs .oracle.com/javase/9/docs/api/java/util/ServiceLoader.html)。 – VGR