Tomcatのcommmon/lib配下にあるJarファイルの内部のリソースを読めるようにしたい。
それには、Jarファイルの場所を含むurl(以下jarurl)を作成する必要がある。
jarurlは、「jar:file:/C:/・・/common/lib/xxx.jar!/jp/reflexworks/sample.xml」という感じで、!の前がJarファイル名、後がパッケージ名となる。「.」は「/」に置き換わる。
これさえ作れれば、あとはnew URL(jarurl).openStream();とやれば読み込める。
Jarファイルの場所付きurlを作成するには、以下のように、log4jのLoader.getResource()を使うと便利。
URL url = Loader.getResource("jp/reflexworks/sample.xml");
String jarurl = "jar:file:/"+url.getFile().substring(5);
これで解決。
<追記>
以下のfile://のように、2回//があると読めなくなるので、ちょっと修正。
jar:file://C:/・・/common/lib/xxx.jar!/jp/reflexworks/sample.xml
URL url = Loader.getResource("jp/reflexworks/sample.xml");
String jarurl = "jar:"+url.getFile();
0 件のコメント:
コメントを投稿