【问题标题】:Exporting Java project as runnable Jar: not doing anything将 Java 项目导出为可运行的 Jar:不做任何事情
【发布时间】:2015-11-21 22:10:38
【问题描述】:

所以我在导出我的 eclipse 项目时遇到了问题。 该项目在 Eclipse 中运行时运行良好,但在导出时,它什么也不做。

我无法发布第三个链接,因为我的声誉低于 10,但在那里我选择了我的“主要”作为启动配置,并选择了“打包所需的库。

当我双击可运行的 Jar 时,什么也没有发生,什么也没有弹出。没有任何消息。 当我使用java -jar smergy.jar 运行它时,我收到了

`C:\Users\Jean>java -jar Smergy.jar
java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(Unknown Source)
        at smergy.SmergyMain.<init>(SmergyMain.java:162)
        at smergy.SmergyMain$1.run(SmergyMain.java:50)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.doIntersectionP
rivilege(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)`

【问题讨论】:

  • 从命令行运行java -jar yourjar.jar会发生什么?
  • 请不要只使用屏幕截图,您可以将这些详细信息作为文本复制到您的问题中。您必须检查您的 jar 是否有效,为此使用压缩实用程序(Winzip、7zip)或使用 jar 命令,如下所示:jar -tvf smergy.jar。如果文件正确,则可以读取它并包含您之前导出的所有内容。 确保 jar 位于您发出任何命令的目录中。
  • 好吧,我得到一个“NullPointerException”,很多未知来源,EventQueue,在这里你可以看到它:gyazo.com/820cdf8cd6c761dfd2c324eadd42dd7c

标签: java eclipse jar runnable


【解决方案1】:

很可能图像没有被打包到 jar 中。或者他们没有被加载。 处理加载资源的一种方法是使用 Toolkit,如下所示: setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/package1/package2/dump.jpg")));

【讨论】:

  • 我解压后可以看到文件夹里的所有图片
  • smergy.SmergyMain.&lt;init&gt;(SmergyMain.java:162) 行中有什么内容?
  • Image imgBgRed = new ImageIcon(this.getClass().getResource("/Red.png")).getImage(); 奇怪的是它表示那条线,因为它在许多其他图像中是随机的
  • 好的,我修好了。我从头开始重建了整个项目,突然它开始工作了!魔法..
  • 非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 2016-12-24
  • 1970-01-01
相关资源
最近更新 更多