前提・実現したいこと
現在、画像入りのjarファイルを作っています。
今、jar cvf Main.jar *.class
でjarファイルを作り
jar xvf PacMan.jar
で展開した後、マニュフェストファイルにMain-Class: 〇〇
と追加し、
jar cvfm Main.jar META-INF\MANIFEST.MF *.class
でjarファイルを作りました。
そして、そのjarファイルにはJFrame
に画像を表示するので
JFrame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("img/character/3.png")).getImage());
のようにgetClass()
などを使って画像を表示しています。(こうしないとjarファイル化した後にjarファイルを移動させて使うと画像が使えないらしいから)
ですがこのようにすると下のエラーが出てしまいます。直し方を教えてください。
追伸:
jarファイル化せずに実行するとエラーは発生せず正常に動作しました。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217) at Game.<init>(Main.java:109) at Main.main(Main.java:9)
補足情報(FW/ツールのバージョンなど)
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)