2011-01-18 6 views
1

내가 runable jar 파일에 내 프로젝트를 포장하려고으로 실행할 수 없습니다, 그리고 난이 오류가 발생했습니다 :내 실행 가능한 jar 파일로 인해 NullPointerException이


내 주요 방법은 클래스 CALSS의 eBridgFrame에
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) 

, 및 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; 
} 

} 

누군가가 저를 저장할 수는 ??? 고마워요!

+0

모든 코드 주위에 코드 태그 ({} 모양의 아이콘)를 사용하십시오. 현재 형식으로 읽는 것은 정말 어렵습니다. –

+0

자바 명명 규칙을 배우고 준수하십시오. – kleopatra

답변

3

당신이 라인 (66) 인 우리에게 줄 경우 그것은 정말 도움이,하지만 내 생각 엔이이 점입니다 :

당신이 당신 jar 파일에 eB.png을 포함하지 않은 것 소리
this.setIconImage(Toolkit.getDefaultToolkit().getImage(
    getClass().getResource("/eBridge/images/eB.png"))); 

, 또는 당신이 올바른 장소에 그것을 포함하지 않았습니다.

1

아래 라인을 살펴 봐야합니다.

eBridge.LoginPage.initialize(LoginPage.java:66) 
관련 문제