JDK 1.6 和 Xerces?
在我当前的项目中,我们以 JDK 1.6 运行时环境为目标。对于旧版 rasons,Xerces JAR 文件捆绑在应用程序中。
这些都不再需要了吧?JDK已经(一段时间)将XML解析库捆绑在JDK中?
在我当前的项目中,我们以 JDK 1.6 运行时环境为目标。对于旧版 rasons,Xerces JAR 文件捆绑在应用程序中。
这些都不再需要了吧?JDK已经(一段时间)将XML解析库捆绑在JDK中?
这些XML服务在应用环境中插入时使用所谓的“服务提供者”机制。
它的工作原理如下:
-Djavax.xml.parsers.SAXParserFactory=<some class>
FactoryFinder
${java.home}/lib/jaxp.properties
META-INF/services/<some service>
META-INF/services/javax.xml.parsers.SAXParserFactory
org.apache.xerces.jaxp.SAXParserFactoryImpl
因此,如果您没有指向明显工厂类的系统属性,java将悄悄地选择合适的实现。
自 1.4 版本将 JAXP 添加到 JRE 以来,就不需要捆绑 XML 解析器。您应该使用 JAXP,而不是直接调用 Xerces。在内部,JRE无论如何都会捆绑并使用Xerces(带有“com.sun”前缀)。