net.sf.jga.parser.JFXGParser的ClassNotFoundException

时间:2014-11-20 16:27:41

标签: java dataset classnotfoundexception

我试图理解我的代码有什么不正确并试图理解以下错误:

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的一部分。我真的可以帮上忙。

更新: 我的进口商品:

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;

1 个答案:

答案 0 :(得分: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

网上的一些答案提到了Classpath,所以我检查了我的,项目似乎有了它,所以我仍然感到困惑。我决定做一些我认为不会起作用的事情,但事实确实如此。我注意到引用位于“DataSetTester(默认类路径)”文件夹中。因此,我决定将jar添加到根“User Entries”类路径中。一旦我这样做,应用程序运行正常。

注意:可能不需要某些罐子,但这是我使用的设置。 DataSet对象是databinding-0.8.0.jar的一部分,但我认为jga-0.7.2-crrl.jar也是必需的。

Properties for Application

Edit Configuration

Step by Steps(对于Eclipse):

  1. 创建新的Java应用程序
  2. 转到:项目&gt;属性&gt; Java构建路径&gt; “库”选项卡
  3. 使用“添加外部JAR ...”
  4. 添加jar文件
  5. 编写代码;如果正确添加了罐子,Eclipse应该有自动填充工作
  6. 运行应用程序并接收ClassNotFoundException
  7. 使用debug
  8. 确定哪个jar具有导致异常的类
  9. 转到:项目&gt;属性&gt;运行/调试设置
  10. 选择适合启动配置的对象,然后单击“编辑...”
  11. 转到:Classpath选项卡
  12. 选择“用户条目”,然后点击“添加外部JAR ...”
  13. 添加库中使用的相同jar文件
  14. 运行应用程序(可能需要执行清理)