2014-11-20 96 views
2

我想了解什麼是不正確我的代碼,並試圖瞭解以下錯誤:的ClassNotFoundException爲net.sf.jga.parser.JFXGParser

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: net/sf/jga/parser/JFXGParser 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.jdesktop.dataset.DataSet.<init>(Unknown Source) 
    at com.datamotion.DMNet.getMailbox(DMNet.java:358) 
    at com.datamotion.Mailbox$1.actionPerformed(Mailbox.java:50) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(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.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.awt.EventQueue$4.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.ClassNotFoundException: net.sf.jga.parser.JFXGParser 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 51 more 

有問題的唯一代碼是以下行:

DataSet data = new DataSet(); 

DataSet是0.8 swingx api/library的一部分。我真的可以使用一些幫助。

UPDATE: 我進口:

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 
import java.io.StringReader; 
import java.rmi.RemoteException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.Message.RecipientType; 
import javax.mail.MessagingException; 
import javax.mail.Multipart; 
import javax.mail.Session; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 

import org.jdesktop.dataset.DataSet; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 
import org.xml.sax.InputSource; 
import org.xml.sax.SAXException; 
+0

所以,如果你清空你的主,只是把這一行,你會得到錯誤?你的進口是什麼樣的? – Jias 2014-11-20 17:34:38

+0

查看更新的問題。 – Kyle 2014-11-20 18:41:53

回答

0

這個答案可能是5個月的問題被張貼後,但我希望這會幫助別人。

我正在研究一個沒有問題的Java應用程序,但是一旦我開始使用SwingLabs DataSet,我無法運行該應用程序,因此接收到帶有JFXGParser的ClassNotFoundException。

我創建了一個新的應用程序與只是一行代碼來創建一個DataSet

import org.jdesktop.dataset.DataSet; 
public class Main { 
    public static void main(String[] args) { 
     DataSet ds = new DataSet("ds"); 
    } 
} 

這裏是包瀏覽器的快照顯示什麼引用。

Package Explorer

一些答案網上提到的類路徑,所以我查礦和項目似乎有它,所以我還是百思不得其解。我決定做一些我認爲不會奏效的事情,但確實如此。我注意到引用是在「DataSetTester(默認類路徑)」文件夾中。相反,我決定將jar添加到根用戶條目類路徑中。一旦我做到了,應用程序運行得很好。

注意:有些罐子可能不需要,但這是我使用的設置工作。 DataSet對象是databinding-0.8.0.jar的一部分,但我認爲jga-0.7.2-crrl.jar也是必需的。

Properties for Application

Edit Configuration

一步步驟(適用於Eclipse):

  1. 創建新的Java應用程序
  2. 轉到:項目>屬性> Java構建路徑>庫選項卡
  3. 使用「添加外部JAR ...」添加jar文件
  4. 編寫代碼; Eclipse應當具有自動填充工作,如果得到適當的補充罐
  5. 運行應用程序和接收的ClassNotFoundException
  6. 確定哪個罐子有使用調試
  7. 轉到導致異常類:項目>屬性>運行/調試設置
  8. 爲啓動配置選擇適當的對象,然後單擊「編輯...」「
  9. 轉到:Classpath選項卡
  10. 選擇‘用戶條目’,然後單擊‘添加外部JAR ...’
  11. 添加在圖書館中使用
  12. 運行的應用程序,同樣的瓶子文件(可能需要執行清潔)
相關問題