java - 由于 NullPointerException,我的可执行 jar 文件无法运行

标签 java nullpointerexception executable-jar

我正在尝试将我的项目打包到可运行的 jar 文件中,但出现此错误:


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at eBridge.LoginPage.initialize(LoginPage.java:66)
    at eBridge.LoginPage.<init>(LoginPage.java:55)
    at eBridge.LoginPage.<init>(LoginPage.java:49)
    at eBridge.eBridgFrame.<init>(eBridgFrame.java:37)
    at eBridge.eBridgFrame$1.run(eBridgFrame.java:24)
    at java.awt.event.InvocationEvent.dispatch(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)

我的主要方法是在类 calss eBridgFrame 上,它基于选项卡运行...这是 eBridgFrame 类:


package eBridge;

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;

import javax.swing.WindowConstants;

public class eBridgFrame extends JFrame {

 private static final long serialVersionUID = 1L;
 private JPanel jContentPane = null;


 public static void main(String[] args) {
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    eBridgFrame thisClass = new eBridgFrame();
    thisClass.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    thisClass.setVisible(true);
   }
  });
 }

 /**
  * This is the default constructor
  */
 public eBridgFrame() {
  super();
  initialize();
  JPanel panel = new LoginPage(this);
  this.getContentPane().add(panel);
  this.setVisible(true);
 }

 /**
  * This method initializes this
  * 
  * @return void
  */
 private void initialize() {
  this.setSize(950, 720);
  this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  this.setName("EBRIDG");
  this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/eBridge/images/eB.png")));
  this.setResizable(false);
  this.setMinimumSize(new Dimension(950, 720));
  this.setPreferredSize(new Dimension(950, 720));
  this.setContentPane(getJContentPane());
  this.setTitle("EBRIDG");
  }
 //Pop up msg to confirm closing by overiding javax.swing.JFrame.processWindowEvent() method
   protected void processWindowEvent(WindowEvent e) {

          if (e.getID() == WindowEvent.WINDOW_CLOSING) {

              int exit = JOptionPane.showConfirmDialog(this, "Are you sure?");
              if (exit == JOptionPane.YES_OPTION) {
                  System.exit(0);
              }

          } 
 }

 /**
  * This method initializes jContentPane
  * 
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
  }
  return jContentPane;
 }

}

有人能救我吗???非常感谢!

最佳答案

如果您告诉我们第 66 行是什么,那真的会有帮助,但我猜是这样的:

this.setIconImage(Toolkit.getDefaultToolkit().getImage(
    getClass().getResource("/eBridge/images/eB.png")));

听起来您只是没有将 eB.png 包含在您的 jar 文件中,或者您没有将它包含在正确的位置。

关于java - 由于 NullPointerException,我的可执行 jar 文件无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721839/

相关文章:

java - 在 Lucene 中模糊搜索多词术语

android - 异步任务并从 url NullPointerException 解析 JSONObject

java - 线程异常 "main"java.lang.NoSuchMethodError : java. lang.Character.isAlphabetic(I)Z

javafx - 使用 JavaFx 插件为 gradle 制作可执行 jar

java - lambda 表达式中使用的变量应该是最终变量或有效最终变量

java - 从 JOptionPane 中的 JTextArea 获取输入

Android Canvas drawcolor抛出空指针异常

java - 在 Java 中读取文件会抛出 `NullPointerException`

java - 如何从现有 Java 项目中提取主类?

java - Weld -001409 : Ambiguous dependencies for type T with qualifiers @Default