Netbeans为现有类插件ClassNotFoundException

时间:2013-02-08 23:21:30

标签: java plugins netbeans classloader

我正在使用基于http://platform.netbeans.org/tutorials/nbm-code-completion.html教程的Netbeans插件。当我启动并调试我的插件时,会引发异常:

  

抛出java.lang.ClassNotFoundException:   javax.swing.text.BadLocationException at   org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)     在   org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)     在   org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)     在   org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)     在java.lang.ClassLoader.loadClass(ClassLoader.java:356)引起:   java.lang.NoClassDefFoundError:javax / swing / text / BadLocationException     在   pl.artpal.hinttest.CodeCompletionProvider $ 1.query(CodeCompletionProvider.java:35)     在   org.netbeans.spi.editor.completion.support.AsyncCompletionTask.run(AsyncCompletionTask.java:223)     在   org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:1452)   [抓住]   org.openide.util.RequestProcessor $ Processor.run(RequestProcessor.java:2032)

BadLocationException类是javax.swing.text包的一部分,它应该从rt.jar加载

当然,我的java文件有

import javax.swing.text.BadLocationException;

根据debug-time netbeans命令行,

javax.swing.text.BadLocationException.class 

不存在,但是当我尝试时:

Class.forName("javax.swing.text.BadLocationException").getConstructors()[0].newInstance(new Object[] { "a", 1}).toString()

有效。发生了什么事?

Netbeans v7.2.1,JDK 1.7.0_13,JRE7,Win7x64,我的电脑上也有Eclipse。

1 个答案:

答案 0 :(得分:0)

当系统资源(内存)较低时,我看到ClassNotFoundException。当它清理异常时就消失了。使新的Class()无限循环可能会引导你到那里。

如果不是这种情况,请参见此处:http://javarevisited.blogspot.com/2011/08/classnotfoundexception-in-java-example.html