2

我正在将 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:不会从 ModuleCL@16c14e7 [org 之一任意加载类 org.apache.xerces.parsers.SAXParser .netbeans.libs.xerces] 和 ModuleCL@17e5fde[czsaw.project] 从 SystemClassLoader[406 modules] 开始;见http://wiki.netbeans.org/DevFaqModuleCCE

我该如何解决?

4

2 回答 2

1

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

于 2012-07-24T20:44:28.523 回答
0

查看 Netbeans 的常见问题解答。

如果有多个模块导致歧义,他们将类加载器设计为失败。

http://wiki.netbeans.org/DevFaqModuleCCE

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

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

于 2014-09-09T19:46:43.217 回答