Mavenを使用してJAR内の画像リソースを使用する
質問
タンゴアイコンを使用するJava / Mavenプロジェクトを持っているので、次の依存関係を使用しています。
<dependency>
<groupId>org.freedesktop.tango</groupId>
<artifactId>tango-icon-theme</artifactId>
<version>0.8.90</version>
</dependency>
.
と次のコードは、ProyectをMavenに移動する前にうまく機能します。
imageIcon = new ImageIcon(this.getClass().getResource(org/freedesktop/tango/22x22/actions/address-book-new.png));
.
しかし、それは何らかの理由でNullPointerExceptionをもたらします。 生成されたjarには画像は含まれていませんが、任意の方法でそれらを参照していませんが、他の瓶のクラスはです。
私はたくさん調査しましたが、ほとんどの人が彼らのイメージを彼らの情報源とバンドルしました。これは私の訴訟ではありません。
これらの画像を参考にして/または梱包するためにMavenのために何をする必要がありますか? スタンドアロンのRunnable Jarを構築するためにMavenがどのようになりますか(これはスイングアプリケーションです)。
解決
パスの前にスラッシュを追加した場合:
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/org/freedesktop/tango/22x22/actions/address-book-new.png"));
.
API :
委任前に、絶対リソース名が作成されます。 このアルゴリズムを使用したリソース名を指定すると、
名前が '/'( '\ u002f')で始まる場合は、その絶対値名 リソースは '/'の後の名前の一部です。さもないと、 絶対名は次の形式です。
modified_package_name / name / nameはここにあります '/'が '/'を付いているこのオブジェクトのパッケージ名 '。'( '\ u002e')
所属していません StackOverflow