2009-08-23 56 views
17

我的Mac再次出现问题,运行Java 1.5 ....我在哪里得到一个具有javax.xml.stream.XMLInputFactory的.jar文件?我想使用StAX,但不知道如何让它正确设置。哪个.jar文件具有javax.xml.stream。*?


我似乎无法得到此设置。我现在已经下载了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;

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

我需要做什么?

回答

25

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

Woodstox就是这样一种实现。你也可以使用Sun Java StAX XML processor,这使得它的方式转换成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罐子(jsr173_api.jar等)可以从StAX的公用事业项目来获得。它需要和sjsxp jar在同一个目录下。

在Eclipse

这是没有必要使用JAR文件添加JAR来LIB的JDK /分机。将两个JAR添加到项目的Build Path中就足够了。

+0

好的我正在试图平静地处理这个问题并避免尖叫。我已经下载了SJSXP并将sjsxp.jar和jsr173_1.0_api.jar放入了java/lib/ext目录,但Eclipse拒绝了解类路径中有一个javax.xml.stream.XMLInputFactory>:help! – 2009-08-23 20:57:45

+2

Are you Eclipse确实使用了与你期望的JRE相同的东西?把东西放在lib/ext中是有点脆弱的,在标准的类路径中应该没问题。 – 2009-08-23 21:35:47

+0

@Tom H:好的,我会检查的 – 2009-08-23 21:37:37

17

我可以指点你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 
+2

+1为findjar引用,整洁的工具 – 2009-08-23 19:47:32

+0

不错。谢谢。 – 2012-05-26 16:44:41

+0

事实上,findjar是一个非常宝贵的工具,过去曾经使用过它和JavaEE和IBM的WebSphere相关的东西来找到某些类的记录很差的地方 – 2015-12-31 18:36:16