2009-08-23 3 views
17

Ho ancora problemi con il mio Mac con Java 1.5 .... dove trovo un file .jar con javax.xml.stream.XMLInputFactory? Voglio usare StAX ma non so come farlo impostare correttamente.quale file .jar ha javax.xml.stream. *?


Non riesco a ottenere questa configurazione. Ho scaricato jaxp-api.jar, jsr173_1.0_api.jar, sjsxp.jar, stax-api-1.0.1.jar, stax2-api-3.0.1.jar e woodstox-core-asl-4.0. 5.jar; mettili tutti nella mia directory java/lib/ext, assicurati che siano sul mio percorso di eclissi, rimossi l'attributo esteso Mac com.apple.quarantine, esegui un "chmod a + x" sui file .jar e io ancora ottenere il seguente errore nel tentativo di restrizione import javax.xml.stream.XMLInputFactory;

Accesso: il XMLInputFactory tipo non è accessibile a causa di restrizione libreria richiesta /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home /lib/ext/jsr173_1.0_api.jar

Cosa devo fare?

risposta

25

StAX non fa parte di Java 5; lo troverai in Java 6, tuttavia. Per Java 5, è necessario scaricare un'implementazione StAX e posizionarla nel classpath.

Woodstox è una tale implementazione. Si potrebbe anche usare il Sun Java StAX XML processor, che ha fatto la sua strada in Java SE 6.

Se non mi sbaglio, entrambe queste implementazioni finiranno per utilizzare il jsr173_api.jar, dove troverete il javax.xml pacchetto .stream.

Aggiornamento:

La documentazione Woodstox si riferirebbe di scaricare il StAX 1.0.1 API jar (richiesto quando si utilizza l'API standard StAX); la jar dell'API StAX2 in Woodstox non conterrà il pacchetto javax.xml.stream (anche se avrete bisogno di entrambi i JAR in fase di runtime). L'implementazione di Sun dipende dal progetto stax-utils.

Aggiornamento 2

Installazione JSXP

L'area download di file di SJSXP sembra un po 'strano, nel senso che si dispone di un file di classe, invece di costruire JAR. Tuttavia, tutto ciò che è necessario per ottenere SJSXP JAR, è eseguire il file di classe, che decomprime la distribuzione.

Come API JAR StAX

Il vaso API StAX (jsr173_api.jar o simili) può essere ottenuto dal progetto utilities StAX. Deve essere nella stessa directory del jar sjsxp.

Utilizzando i JAR in Eclipse

Non è necessario aggiungere i JAR per lib/ext del JDK. È sufficiente aggiungere i due JAR al percorso di costruzione del progetto.

+0

OK Sto cercando di trattare con calma ed evitare di urlare. Ho scaricato SJSXP e ho inserito sia sjsxp.jar che jsr173_1.0_api.jar nella directory java/lib/ext, ma Eclipse si rifiuta di capire che c'è un javax.xml.stream.XMLInputFactory nel classpath> :(help! –

+2

Sei sicuro che Eclipse stia usando lo stesso JRE che ci si aspetta? Mettere roba in lib/ext è un po 'fragile, dovrebbe andare bene nel classpath standard –

+0

@Tom H: buon punto, lo controllo –

17

Posso puntare a findjar.com, che consente di immettere un nome di classe e determinare quale jar è richiesto.

ad es. XMLInputFactory rese

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 per il riferimento findjar, strumento pulito –

+0

Nice. Grazie. –

+0

infatti, findjar è uno strumento inestimabile, l'ho usato in passato con JavaEE e roba WebSphere di IBM per trovare dove era scarsamente documentato qualche classe –