我開發了一個導出到可運行jar(包括它需要的庫)的應用程序。一切正常。Java:在jar應用程序中設置圖標
當運行Eclipse中的應用程序,我能夠改變應用程序窗口顯示的圖標:
BufferedImage image = null;
try {
image = ImageIO.read(this.getClass().getResource("AT42.png"));
} catch (IOException e) {e.printStackTrace();}
this.setIconImage(image);
圖片放在我的.class文件目錄。
當我從Eclipse中運行它,它顯示的圖標,但是當我創建了一個可運行的罐子並執行它,我得到以下異常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at com.tools.at4.UserInterface.<init>(UserInterface.java:43)
at com.tools.at4.GeneradorInformes.main(GeneradorInformes.java:8)
... 5 more
我猜的圖標是不是在JAR文件包括,我的問題是,是否有包含它的任何方式,以便當我運行jar文件時,創建的窗口顯示我的圖標而不是Java杯?
謝謝!
Jar文件只是zip存檔,打開它並檢查。 –
嗨dedalo。你是如何創建JAR文件的? –
+1 Matt。確切地說,你是如何創建你的jar文件的?您是否使用Eclipse自己創建的可執行文件夾又名'導出'功能或您的自定義ANT腳本或僅使用jar命令?在使用Eclipse功能時,只需將你的PNG包括在java源文件中,它就應該包含在內。 –