0

インターフェイスの実装を見つけるためにクラスパスをスキャンするライブラリを使用しています (これは奇妙に思えるかもしれません。より良いアプローチがあることはわかっていますが、これを変更することはできません)。このライブラリをスタンドアロン アプリケーションで使用している場合は、

java.class.path

私のjarファイルがあるクラスパスを返します。今、Jboss 7 にデプロイされた Web プロジェクトでこのライブラリを使用しようとしています。この場合、クラスパスを尋ねると、次のように返されます。

java.class.path /Applications/jboss-as-7.1.1.Final/jboss-modules.jar

java.class.path 環境変数に何かを追加する方法がよくわかりません。この変数に何かを追加する方法や、この問題に対するより良いアプローチについてのアイデアはありますか? この lib には、スキャンが必要な jar ファイルを追加できる add() 関数が存在します。したがって、誰かがこの war ファイルの場所を取得する方法を教えてくれれば、それも役に立ちます ;)。

これは私が話しているライブラリです: http://software.clapper.org/javautil/

注:java.class.pathはこのライブラリ内で使用されており、上記のlibに何も変更したくありません。

前もって感謝します。

4

1 に答える 1

1

クラス・ローダーを制御できずにクラスパス・スキャンを実行する移植可能な方法はありません。これを達成するためのより良いオプションは次のとおりです。

  • ServiceLoaderを使用し、META-INF/services
  • CDI を使用し、実装を CDI Bean として登録します。
于 2013-08-20T15:16:34.927 に答える