2016-12-29 1 views
0

私はSpringブートjarで作業しています。私は自分の構造に入れ子になったjarファイルを持っています。 クラスファイルから生のバイトを読み取ろうとしています。次のURLからInputStreamを取得したいと思います。入れ子になったjarにあるクラスからInputStreamを取得するには?

"jar:file:/ D:/work/dev/target/first.jar!/BOOT-INF/lib/second.jar!/ a/b/c/Data.class」

私は

InputStream i = new URL(str).openStream(); 

を試してみましたが、しかし、これは(FileNotFoundExceptionをする)動作しません。 私はspring-bootのAPIを使いたくありません。そのURLはかなり標準的に見えるので、私はこれを達成する方法があることを望んでいます。

+0

実行時にあなたがressourceをロードしようとどこから?あなたは、春のブートジャーに外部からアクセスしたいという印象を与えます。 – davidxxx

+0

コメントありがとうございます。私はfirst.jar内からこれを達成したかったのです。それはランタイムです。私はまた、上記のURLにアクセスすることになった。それが現れたとき、getResourceAsStreamはジョブを行います。 – Icarus3

答えて

1

"second.jar"はクラスパスにありますか?

そうならば、例えばClassloader.getResourceAsStream()

を使用します。

Thread.currentThread().getContextClassLoader().getResourceAsStream("a/b/c/Data.class") 
関連する問題