事前定義されたディレクトリで拡張 jar を探し、それらのマニフェストを調べたいと考えています。一致するものはロードし、一致しないものはアンロードする必要があります。
今、私はそれを原始的な方法で行うことができます-各拡張機能がコマンドラインでそのブートストラップの名前を渡すことを義務付け、次にディレクトリで見つかった各jarに対して、指定されたブートストラップタイプのいずれかを試してロードします. このようなもの:
java -jar myapp.jar --pluginDir=c:/a/b/c --exts="classA;classB;classC"
次に myapp は 内のすべてのファイルを繰り返し処理し、 、またはpluginDir
のそれぞれをロードしようとします。が正常にロードされると、リストから削除されます。すべての拡張機能が見つかってロードされるか、プラグイン ディレクトリに jar がなくなると、検索は停止します。classA
classB
classC
classX
もう少し Javaish なアプローチは、拡張 jar のマニフェストに何かを書き込んで、見つかった各 jar のマニフェストをチェックするようです。
誰かがこのアプローチまたはそれ以上のものの実用的なコードスニペットを示すことができますか?
編集
postgre JDBC ドライバーの README ファイルからの引用 ( https://stackoverflow.com/a/12480373/80002を参照):
INSTALLING THE DRIVER
To install the driver, the postgresql.jar file has to be in the classpath.
ie: under LINUX/SOLARIS (the example here is my linux box):
export CLASSPATH=.:/usr/local/pgsql/share/java/postgresql.jar