私の問題は次のとおりです。Jar内のクラスファイルにアクセスしようとしています。パッケージ「com.msgxsd」にjar「dumb.jar」があります。jarファイルはクラスパス上にあります。
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("com/msgxsd/dumb.jar");
次に、問題なくjarの入力ストリームを取得します。
jar内のファイルの入力ストリーム(またはURL)を取得しようとすると、問題が発生します。(マニフェストを除いて)jarに含まれているのは、ファイル「DummyClass1.class」だけです。
私は次のすべてを試しました:
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("DummyClass1.class");
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("dumb.jar!/DummyClass1.class");
ただし、返される入力ストリームは常にnullです。私も試しました
URL url = this.getClass().getResource("DummyClass1.class");
URL url = this.getClass().getResource("dumb.jar!/DummyClass1.class");
ただし、返されるURLはnullです。
Jar内のファイルへのアクセスに関連する質問のすべてをすでに見てきましたが、提案された解決策(上記のように)は私には機能しません。
私が欲しいのは、jar内の「DummyClass1.class」のInputStream(または理想的にはURL)のいずれかを取得できるようにすることです。これにより、何らかの方法でFileインスタンスを構築できます。
任意の提案をいただければ幸いです。