2009-08-23 21 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

相關問題