月曜日, 6月 16, 2008

【本日の嵌り】 Tomcat common/lib/xxx.jarの内部ファイルを読みこむ このエントリーを含むはてなブックマーク


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 件のコメント:

 
© 2006-2015 Virtual Technology
当サイトではGoogle Analyticsを使ってウェブサイトのトラフィック情報を収集しています。詳しくは、プライバシーポリシーを参照してください。