次のシナリオ:
実行可能な jar としてコンパイルされた小さなサービスのシステム用の管理ツールを拡張しています。これらのサービスは、多数のタスクのためにクラスパスで xml 構成を使用します。
コンパイルされたjarファイルからdb構成などの構成ファイルを抽出し、クラスパスに動的に追加したいと考えています。これまでは、データベースの設定を変更したい場合、スイート全体を再コンパイルする必要がありました。
私が試したこと:
java -Xbootclasspath/p:/path/db.xml java -jar Foo.jar
- これにより Java vm エラーが発生
しますjava -Xbootclasspath/p:/path/db.jar java -jar Foo.jar
- これは何もしないようです。クラスパスで以下のスクリプトを使用して xml ファイルを見つけようとしましたが、できませんでした。xml は jar 内に直接配置されます (で作成jar cvMf db.jar db.xml
)
私が使用したスクリプト:
ZipFile zf;
ZipFile zf;
try{
zf = new ZipFile("Foo.jar");
} catch(final ZipException e){
throw new Error(e);
} catch(final IOException e){
throw new Error(e);
}
final Enumeration e = zf.entries();
while(e.hasMoreElements()){
final ZipEntry ze = (ZipEntry) e.nextElement();
final String fileName = ze.getName();
final boolean accept = Pattern.compile(".*(xml)").matcher(fileName).matches();
if(accept){
log.debug(fileName);
}
}
誰かがこの問題を解決してくれることを願っています。