3

事前定義されたディレクトリで拡張 jar を探し、それらのマニフェストを調べたいと考えています。一致するものはロードし、一致しないものはアンロードする必要があります。

今、私はそれを原始的な方法で行うことができます-各拡張機能がコマンドラインでそのブートストラップの名前を渡すことを義務付け、次にディレクトリで見つかった各jarに対して、指定されたブートストラップタイプのいずれかを試してロードします. このようなもの:

java -jar myapp.jar --pluginDir=c:/a/b/c --exts="classA;classB;classC"

次に myapp は 内のすべてのファイルを繰り返し処理し、 、またはpluginDirのそれぞれをロードしようとします。が正常にロードされると、リストから削除されます。すべての拡張機能が見つかってロードされるか、プラグイン ディレクトリに jar がなくなると、検索は停止します。classAclassBclassCclassX

もう少し 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 
4

1 に答える 1

1

この目的のためにServideLoaderクラスがあります。JDBC ドライバーは、この原則に基づいて構築されています。希望、それは役に立ちました。

于 2012-09-18T15:39:43.323 に答える