【问题标题】:Netbeans not loading a class at run timeNetbeans 在运行时不加载类
【发布时间】:2012-07-24 20:34:41
【问题描述】:

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

我该如何解决这个问题?

【问题讨论】:

    标签: java netbeans-7 dynamic-loading


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      查看 Netbeans 的常见问题解答。

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

      http://wiki.netbeans.org/DevFaqModuleCCE

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-05
        • 1970-01-01
        • 2013-03-13
        • 2012-04-11
        • 1970-01-01
        相关资源
        最近更新 更多