20

我在运行 Java 1.5 的 Mac 上再次遇到问题.... 我在哪里可以获得具有 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.罐子;将它们全部放入我的 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.jar 的限制,无法访问类型 XMLInputFactory

我需要做什么?

4

2 回答 2

27

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

Woodstox就是这样一种实现方式。您还可以使用已进入 Java SE 6的Sun Java StAX XML 处理器。

除非我弄错了,否则这两种实现最终都会使用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

It is not necessary to add the JARs to lib/ext of the JDK. It is enough to add the two JARs to the Build Path of the project.

于 2009-08-23T19:24:18.177 回答
18

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

例如XMLInputFactory产生

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
于 2009-08-23T19:23:46.820 回答