java - 加载我自己的 Xalan 实现,其中旧的 Xalan 被加载到父类加载器

标签 java jar xerces classloader

我正在为框架编写一个插件,它将我的代码作为子类加载器加载

问题是该框架使用某个 Xerces 版本,与我的代码不兼容,我想使用我的“自己的”jar for xerces,但似乎由于旧版本已经加载,我不能似乎让我的代码使用我的。

我正在寻找一些类加载器分离,我知道这是一个已知问题,但似乎无法解决它

在这种情况下,是否有任何框架、库或代码示例可以在本地使用较新的 jar?

最佳答案

您是否尝试过将框架和 Xerces 库的类作为 ExtClassLoader 的一部分加载,方法是将它们放置在与 java.ext.dirs 系统属性相对应的路径中?这样框架的 Xerces 实现版本将由 ExtClassLoader 加载。

然后,您可以将您的 Xerces 实现版本放置在与要由 AppClassLoader 加载的 java.class.path 系统属性相对应的路径中。

我自己没有尝试过,但考虑到类加载层次结构,这应该可行。您可以在此处了解有关类加载层次结构的更多信息 - http://onjava.com/pub/a/onjava/2005/01/26/classloading.html

关于java - 加载我自己的 Xalan 实现,其中旧的 Xalan 被加载到父类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440395/

相关文章:

java - 如何将 .jar 依赖项包含到生成应用程序的最终 .jar 文件的 ANT 目标中?

java - 在 javac 中使用多个 .jar

c++ - 多次调用 DOMImplementationRegistry::getDOMImplementation() 是否不安全或至少是错误的形式?

java - 基于 Java 中的另一个集合排序

java - Hibernate 的 createCriteria() 是否清理输入?

java - 在wildfly中分别部署JPA和REST包

Java Sun/Oracle xerces 解析器错误?

java - 使用 javax.mail api 中的搜索词进行搜索是在服务器端或客户端完成的

java - 执行jar文件的服务

java - 由 Weblogic 11g 中的 : java. lang.ClassNotFoundException: org/apache/xerces/jaxp/DocumentBuilderFactoryImpl 引起