gpt4 book ai didi

java - 可运行的 jar (ExceptionInInitializerError)

转载 作者:行者123 更新时间:2023-12-01 12:01:58 24 4
gpt4 key购买 nike

我遇到了一个我理解的问题,但我不知道如何解决它。我的项目中有一个类,其中包含带有图像或声音的静态字段,这样我就可以在任何地方使用它们,而无需每次都重新创建变量。供引用的字段之一(它们都是相同的):

public static ImageIcon mainMenuBg = new ImageIcon(Resources.class.getResource("img/menubg.png"));

现在我的问题是,当我运行它时,它在 Eclipse 中工作正常,但是当我将项目导出到可运行的 JAR 时,没有任何反应。然后我进入命令窗口并从那里运行它,由于我的图像,我遇到了 ExceptionInInitializerError 。基本上,运行时没有识别任何图像,因此如果我删除每个图像调用,它就可以工作。

此外,值得注意的是,导出时,Main 类列表并未真正更新。如果我更改项目的主要名称,它不会添加到列表中。这可能是我的主要类(class)的问题吗?如果是这样,我该如何解决这个问题?我已经尝试重新创建它,但没有任何改变。有人可以告诉我这个问题吗?

这是打印堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at Client.<init>(Client.java:53)
at Client$1.run(Client.java:37)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at Ressources.<clinit>(Ressources.java:41)
... 16 more

所指向的行是我尝试从资源类加载图像的行。

此外,我的所有类都位于同一个包中,即默认包中。

最后,这是“jar tvf ...”命令的结果:

     153 Tue Jan 13 21:43:36 CET 2015 META-INF/MANIFEST.MF
0 Tue Jan 13 21:43:36 CET 2015 org/
0 Tue Jan 13 21:43:36 CET 2015 org/eclipse/
0 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/
0 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/
0 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/
978 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/JIJC
onstants.class
714 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/JarR
srcLoader$ManifestInfo.class
4735 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/JarR
srcLoader.class
1505 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/Rsrc
URLConnection.class
1841 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/Rsrc
URLStreamHandler.class
1149 Tue Jan 13 21:43:36 CET 2015 org/eclipse/jdt/internal/jarinjarloader/Rsrc
URLStreamHandlerFactory.class
1495 Tue Jan 13 21:43:06 CET 2015 ChatPrive$1.class
1792 Tue Jan 13 21:43:06 CET 2015 ChatPrive$2.class
1596 Tue Jan 13 21:43:06 CET 2015 ChatPrive$3.class
1897 Tue Jan 13 21:43:06 CET 2015 ChatPrive$4.class
1553 Tue Jan 13 21:43:06 CET 2015 ChatPrive$5.class
7565 Tue Jan 13 21:43:06 CET 2015 ChatPrive.class
2680 Tue Jan 13 21:43:06 CET 2015 Tour.class
9003 Tue Jan 13 21:43:06 CET 2015 Move.class
2622 Tue Jan 13 21:43:06 CET 2015 InfosPartie.class
1448 Tue Jan 13 21:43:06 CET 2015 Message.class
3262 Tue Jan 13 21:43:06 CET 2015 Roi.class
1464 Tue Jan 13 21:43:06 CET 2015 Case.class
987 Tue Jan 13 21:43:06 CET 2015 JoueurIA.class
750 Tue Jan 13 21:43:06 CET 2015 MenuCopie$1.class
1307 Tue Jan 13 21:43:06 CET 2015 MenuCopie$2.class
2992 Tue Jan 13 21:43:06 CET 2015 MenuCopie.class
7882 Tue Jan 13 21:43:06 CET 2015 ReceptionClient.class
1138 Tue Jan 13 21:43:06 CET 2015 Chat$1.class
851 Tue Jan 13 21:43:06 CET 2015 Chat$2.class
3835 Tue Jan 13 21:43:06 CET 2015 Chat.class
2263 Tue Jan 13 21:43:06 CET 2015 Fou.class
832 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$1.class
2081 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$2.class
1401 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$3.class
1216 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$4.class
1216 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$5.class
1216 Tue Jan 13 21:43:06 CET 2015 MenuPromotion$6.class
4231 Tue Jan 13 21:43:06 CET 2015 MenuPromotion.class
1501 Tue Jan 13 21:43:06 CET 2015 Jeu$1.class
825 Tue Jan 13 21:43:06 CET 2015 Jeu$2.class
10677 Tue Jan 13 21:43:06 CET 2015 Jeu.class
1457 Tue Jan 13 21:43:06 CET 2015 ChatAll$1.class
1570 Tue Jan 13 21:43:06 CET 2015 ChatAll$2.class
1344 Tue Jan 13 21:43:06 CET 2015 ChatAll$3.class
1914 Tue Jan 13 21:43:06 CET 2015 ChatAll$4.class
1527 Tue Jan 13 21:43:06 CET 2015 ChatAll$5.class
9326 Tue Jan 13 21:43:06 CET 2015 ChatAll.class
1135 Tue Jan 13 21:43:06 CET 2015 PanelInfo$1.class
1337 Tue Jan 13 21:43:06 CET 2015 PanelInfo$10.class
1164 Tue Jan 13 21:43:06 CET 2015 PanelInfo$11.class
963 Tue Jan 13 21:43:06 CET 2015 PanelInfo$12.class
1335 Tue Jan 13 21:43:06 CET 2015 PanelInfo$13.class
963 Tue Jan 13 21:43:06 CET 2015 PanelInfo$14.class
830 Tue Jan 13 21:43:06 CET 2015 PanelInfo$15.class
829 Tue Jan 13 21:43:06 CET 2015 PanelInfo$16.class
1435 Tue Jan 13 21:43:06 CET 2015 PanelInfo$2.class
576 Tue Jan 13 21:43:06 CET 2015 PanelInfo$3.class
1748 Tue Jan 13 21:43:06 CET 2015 PanelInfo$4.class
1356 Tue Jan 13 21:43:06 CET 2015 PanelInfo$5.class
1552 Tue Jan 13 21:43:06 CET 2015 PanelInfo$6.class
1556 Tue Jan 13 21:43:06 CET 2015 PanelInfo$7.class
945 Tue Jan 13 21:43:06 CET 2015 PanelInfo$8.class
1437 Tue Jan 13 21:43:06 CET 2015 PanelInfo$9.class
16765 Tue Jan 13 21:43:06 CET 2015 PanelInfo.class
1176 Tue Jan 13 21:43:06 CET 2015 MenuUtilisateurs$1.class
1173 Tue Jan 13 21:43:06 CET 2015 MenuUtilisateurs$2.class
1753 Tue Jan 13 21:43:06 CET 2015 MenuUtilisateurs$3.class
2228 Tue Jan 13 21:43:06 CET 2015 MenuUtilisateurs$4.class
2071 Tue Jan 13 21:43:06 CET 2015 MenuUtilisateurs.class
3996 Tue Jan 13 21:43:06 CET 2015 Piece.class
3830 Tue Jan 13 21:43:06 CET 2015 PartieSolo.class
3300 Tue Jan 13 21:43:06 CET 2015 ConnexionClient.class
1160 Tue Jan 13 21:43:06 CET 2015 EchecGUI$1.class
8154 Tue Jan 13 21:43:06 CET 2015 EchecGUI.class
6844 Tue Jan 13 21:43:06 CET 2015 Joueur.class
677 Tue Jan 13 21:43:06 CET 2015 Client$1.class
834 Tue Jan 13 21:43:06 CET 2015 Client$2.class
2718 Tue Jan 13 21:43:06 CET 2015 Client$3.class
1041 Tue Jan 13 21:43:06 CET 2015 Client$4.class
1008 Tue Jan 13 21:43:06 CET 2015 Client$5.class
983 Tue Jan 13 21:43:06 CET 2015 Client$6.class
1096 Tue Jan 13 21:43:06 CET 2015 Client$7.class
4611 Tue Jan 13 21:43:06 CET 2015 Client.class
2783 Tue Jan 13 21:43:06 CET 2015 Pion.class
663 Tue Jan 13 21:43:06 CET 2015 JoueurReel.class
1620 Tue Jan 13 21:43:06 CET 2015 MessagePrive.class
6302 Tue Jan 13 21:43:06 CET 2015 PartieEnLigne.class
1911 Tue Jan 13 21:43:06 CET 2015 Cheval.class
6817 Tue Jan 13 21:43:06 CET 2015 Ressources.class
1235 Tue Jan 13 21:43:06 CET 2015 NotificationMessage$1.class
1348 Tue Jan 13 21:43:06 CET 2015 NotificationMessage.class
3835 Tue Jan 13 21:43:06 CET 2015 PartieAmi.class
1355 Tue Jan 13 21:43:06 CET 2015 EmissionClient.class
2999 Tue Jan 13 21:43:06 CET 2015 Reine.class
0 Tue Jan 13 20:55:48 CET 2015 img/
945 Sun Jan 11 19:40:24 CET 2015 img/attaque.png
196863 Fri Jan 09 22:59:04 CET 2015 img/board.png
595046 Sun Jan 11 22:04:40 CET 2015 img/board1.png
631303 Sat Jan 10 00:14:04 CET 2015 img/board2.png
440 Sun Jan 11 22:32:28 CET 2015 img/boutonchat.png
413 Sun Jan 11 22:32:46 CET 2015 img/boutonchatsel.png
735 Sun Jan 11 21:53:46 CET 2015 img/boutonrecommencer.png
793 Sun Jan 11 21:54:52 CET 2015 img/boutonrecommencersel.png
258 Wed Dec 24 17:28:54 CET 2014 img/caseCible.png
224 Sat Jan 10 18:23:04 CET 2015 img/casePleinePoss.png
1100 Sat Jan 10 18:14:06 CET 2015 img/caseSelectionnee.png
224 Sat Jan 10 18:14:30 CET 2015 img/caseVidePoss.png
5962 Wed Dec 24 17:28:54 CET 2014 img/chevalblanc.png
1203 Mon Jan 12 21:37:44 CET 2015 img/chevalblancmort.png
1106 Sun Jan 11 00:40:14 CET 2015 img/chevalblancpromo.png
5720 Wed Dec 24 17:28:54 CET 2014 img/chevalnoir.png
1214 Mon Jan 12 21:37:44 CET 2015 img/chevalnoirmort.png
1119 Sun Jan 11 00:40:50 CET 2015 img/chevalnoirpromo.png
8080 Mon Jan 12 20:44:20 CET 2015 img/echec.png
29956 Mon Jan 12 00:08:06 CET 2015 img/ecranpause.png
3736 Thu Jan 08 00:14:42 CET 2015 img/fondlabel.png
5783 Sun Jan 11 19:04:14 CET 2015 img/fondlabelblanc.png
6968 Sun Jan 11 19:04:18 CET 2015 img/fondlabelnoir.png
5327 Sun Jan 11 22:22:52 CET 2015 img/footer.png
4087 Wed Dec 24 17:28:54 CET 2014 img/foublanc.png
1024 Mon Jan 12 21:37:46 CET 2015 img/foublancmort.png
887 Sun Jan 11 00:43:04 CET 2015 img/foublancpromo.png
3987 Wed Dec 24 17:28:54 CET 2014 img/founoir.png
1010 Mon Jan 12 21:37:48 CET 2015 img/founoirmort.png
864 Sun Jan 11 00:43:24 CET 2015 img/founoirpromo.png
10904 Sun Jan 11 01:19:48 CET 2015 img/historique.png
260917 Tue Jan 13 20:55:48 CET 2015 img/menubg.png
127477 Tue Jan 13 19:30:36 CET 2015 img/panelinfobg.png
270 Sun Jan 11 22:13:34 CET 2015 img/pause.png
256 Sun Jan 11 22:13:48 CET 2015 img/pausesel.png
3817 Mon Jan 12 01:41:14 CET 2015 img/pionblanc.png
979 Mon Jan 12 21:37:50 CET 2015 img/pionblancmort.png
3813 Thu Jan 08 00:39:10 CET 2015 img/pionnoir.png
992 Mon Jan 12 21:37:42 CET 2015 img/pionnoirmort.png
379 Sun Jan 11 23:00:42 CET 2015 img/play.png
377 Sun Jan 11 23:00:28 CET 2015 img/playsel.png
37986 Mon Jan 12 01:17:54 CET 2015 img/promobg.png
449 Sun Jan 11 22:58:14 CET 2015 img/redo.png
439 Sun Jan 11 22:58:32 CET 2015 img/redosel.png
5292 Wed Dec 24 17:28:54 CET 2014 img/reineblanc.png
1245 Mon Jan 12 21:37:54 CET 2015 img/reineblancmort.png
1140 Sun Jan 11 00:41:18 CET 2015 img/reineblancpromo.png
5185 Wed Dec 24 17:28:54 CET 2014 img/reinenoir.png
1222 Mon Jan 12 22:24:28 CET 2015 img/reinenoirmort.png
1115 Sun Jan 11 00:41:40 CET 2015 img/reinenoirpromo.png
5809 Mon Jan 12 00:11:32 CET 2015 img/reprendreBtn.png
4946 Mon Jan 12 00:12:56 CET 2015 img/reprendreBtnsel.png
5889 Wed Dec 24 17:28:54 CET 2014 img/roiblanc.png
5717 Wed Dec 24 17:28:54 CET 2014 img/roinoir.png
2152 Sun Jan 11 00:57:20 CET 2015 img/roque.png
2144 Sun Jan 11 19:26:50 CET 2015 img/roqueblanc.png
2099 Sun Jan 11 19:26:16 CET 2015 img/roquenoir.png
529 Mon Jan 12 21:58:58 CET 2015 img/sonoff.png
503 Mon Jan 12 21:59:24 CET 2015 img/sonoffsel.png
686 Mon Jan 12 21:59:36 CET 2015 img/sonon.png
623 Mon Jan 12 21:59:52 CET 2015 img/sononsel.png
395 Sun Jan 11 22:43:30 CET 2015 img/surrender.png
357 Sun Jan 11 22:43:46 CET 2015 img/surrendersel.png
849 Mon Jan 12 19:40:22 CET 2015 img/tooltip.png
4564 Wed Dec 24 17:28:54 CET 2014 img/tourblanc.png
1146 Mon Jan 12 21:38:00 CET 2015 img/tourblancmort.png
1008 Sun Jan 11 00:42:16 CET 2015 img/tourblancpromo.png
4528 Wed Dec 24 17:28:54 CET 2014 img/tournoir.png
1135 Mon Jan 12 21:38:04 CET 2015 img/tournoirmort.png
986 Sun Jan 11 00:42:42 CET 2015 img/tournoirpromo.png
453 Sun Jan 11 22:57:06 CET 2015 img/undo.png
441 Sun Jan 11 22:56:48 CET 2015 img/undosel.png
1326 Mon Jan 12 01:13:52 CET 2015 img/valider.png
1393 Mon Jan 12 01:19:40 CET 2015 img/validersel.png
0 Tue Jan 13 18:50:36 CET 2015 snd/
2248748 Mon Jan 12 23:35:38 CET 2015 snd/ambiancefeu.wav
77868 Mon Jan 12 23:32:06 CET 2015 snd/attaque.wav
25988 Tue Jan 13 00:08:06 CET 2015 snd/boutonclic.wav
397356 Mon Jan 12 21:02:50 CET 2015 snd/echec.wav
43342 Sun Jan 11 23:59:36 CET 2015 snd/hover.wav
319532 Wed Jan 07 00:43:04 CET 2015 snd/message.wav
108464 Mon Jan 12 23:45:02 CET 2015 snd/played.wav
606552 Tue Jan 13 18:50:36 CET 2015 snd/promotion.wav
112156 Sat Jan 10 19:06:50 CET 2015 snd/select.wav

最佳答案

在深入研究文档后,我认为问题可能是您使用的是相对路径而不是绝对路径,如下所述:

[http://www.thinkplexx.com/learn/howto/java/system/java-resource-loading-explained-absolute-and-relative-names-difference-between-classloader-and-class-resource-loading]

所以请尝试:

ImageIcon mainMenuBg = new ImageIcon(Resources.class.getResource("/img/menubg.png"));

关于java - 可运行的 jar (ExceptionInInitializerError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27930769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com