繁体   English   中英

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

[英]My executable jar file cannot run due to NullPointerException

我试图将我的项目打包成可运行的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上,itz在选项卡上运行...这里是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")));

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

你需要看看下面的线;

 eBridge.LoginPage.initialize(LoginPage.java:66)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM