Netbeans在运行时没有加载类

时间:2012-07-24 20:34:42

标签: java netbeans-7 dynamic-loading

我正在将Java应用程序移动到Netbeans平台。其中一个函数使用Xerces库中的SAXBuilder来解析XML。

SAXBuilder声明

SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);

此行导致JDOM异常(我猜是因为它无法加载指定的解析器):

builder.build(xmlFile);

错误消息是:

  

无法加载org.apache.xerces.parsers.SAXParser:SAX2驱动程序类   未找到org.apache.xerces.parsers.SAXParser:不会加载类   org.apache.xerces.parsers.SAXParser任意一个   ModuleCL @ 16c14e7 [org.netbeans.libs.xerces]和   ModuleCL @ 17e5fde [czsaw.project]从SystemClassLoader [406开始]   模块];见http://wiki.netbeans.org/DevFaqModuleCCE

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

确保您在项目库中加载的库是SAXBuilder的正确包。似乎存在类歧义,并且不确定要加载哪一个。

答案 1 :(得分:0)

查看Netbeans的常见问题解答。

如果有多个模块导致含糊不清,他们会设计类加载器失败。

http://wiki.netbeans.org/DevFaqModuleCCE

与文章建议的一样,将此代码放在应该定义要使用的类的模块中:

Thread.currentThread()setContextClassLoader(的 YourClass .class.getClassLoader());