哪个.jar文件有javax.xml.stream.*?

2022-09-02 08:56:08

我的Mac运行Java 1.5时再次遇到问题....我在哪里可以获得包含javax..xml.stream.XMLInputFactory的.jar文件?我想使用StAX,但不知道如何正确设置它。


我似乎无法进行此设置。我现在已经下载了jaxp-api.jar,jsr173_1.0_api.jar,sjsxp.jar,stax-api-1.0.1.jar,stax2-api-3.0.1.jar和woodstox-core-asl-4.0.5.jar;将它们全部放入我的java / lib / ext目录中,确保它们位于我的eclipse构建路径上,删除了Mac com.apple.quarantine扩展属性,在.jar文件上执行了“chmod a + x”,我仍然收到以下错误,尝试import javax.xml.stream.XMLInputFactory;

访问限制:由于对所需库/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/jsr173_1.0_api 的限制,XMLInputFactory 类型不可访问.jar

我需要做什么?


答案 1

StAX不是Java 5的一部分;但是,您可以在Java 6中找到它。对于 Java 5,您需要下载 StAX 实现并将其放在类路径中。

Woodstox就是这样一种实现。你也可以使用 Sun Java StAX XML 处理器,它已经进入了 Java SE 6。

除非我弄错了,否则这两个实现最终都将使用jsr173_api.jar,您可以在其中找到javax.xml.stream包。

更新:

Woodstox 文档将建议你下载 StAX 1.0.1 API jar(使用标准 StAX API 时需要);Woodstox 中的 StAX2 API jar 将不包含 javax.xml.stream 包(尽管在运行时需要这两个 JAR)。Sun 的实现依赖于 stax-utils 项目。

更新 2

安装 JSXP

SJSXP的下载文件区域看起来有点奇怪,因为你有一个类文件,而不是构建JAR。但是,获取 SJSXP JAR 所需的全部内容就是执行类文件,从而解压缩分发包。

获取 StAX API JAR

StAX API jar(jsr173_api.jar或类似名称)可以从 StAX 实用程序项目获得。它需要与 sjsxp jar 位于同一目录中。

在 Eclipse 中使用 JAR

没有必要将 JAR 添加到 JDK 的 lib/ext 中。将两个 JAR 添加到项目的构建路径就足够了。


答案 2

我可以指出您 findjar.com,它允许您输入类名并确定需要哪个jar。

例如 XMLInputFactory yields

jsr173_1.0_api.jar
jsr173_api.jar
stax-api-1.0.1.jar
stax-api-1.0.1.jar
stax-api-1.0.jar
groovysoap-all-jsr06-0.1.jar

推荐