2009-08-23 10 views
17

Tengo problemas otra vez con mi Mac con Java 1.5 ... ¿dónde obtengo un archivo .jar que tiene javax.xml.stream.XMLInputFactory? Quiero usar StAX pero no sé cómo configurarlo correctamente.que archivo .jar tiene javax.xml.stream. *?


Parece que no puedo obtener esta configuración. Ahora descargué jaxp-api.jar, jsr173_1.0_api.jar, sjsxp.jar, stax-api-1.0.1.jar, stax2-api-3.0.1.jar y woodstox-core-asl-4.0. 5.jar; los puse en mi directorio java/lib/ext, me aseguré de que estuvieran en mi ruta de compilación eclipse, eliminé el atributo Mac com.apple.quarantine extended, hice un "chmod a + x" en los archivos .jar, y aún así obtener el siguiente error al intentar restricción import javax.xml.stream.XMLInputFactory;

acceso: la XMLInputFactory tipo no es accesible debido a la restricción en biblioteca necesaria /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home /lib/ext/jsr173_1.0_api.jar

¿Qué debo hacer?

Respuesta

25

StAX no es parte de Java 5; lo encontrarás en Java 6, sin embargo. Para Java 5, deberá descargar una implementación de StAX y colocarla en el classpath.

Woodstox es una de esas implementaciones. También es posible usar el Sun Java StAX XML processor, que ha hecho su camino en Java SE 6.

Si no me equivoco, ambas de estas implementaciones finalmente utilizará la jsr173_api.jar, donde encontrará la javax.xml paquete .stream

Actualización:

La documentación Woodstox se referiría a descargar el StAX 1.0.1 API jar (obligatorio cuando se utiliza la API estándar StAX); el jar API StAX2 en Woodstox no contendrá el paquete javax.xml.stream (aunque necesitará ambos JAR en tiempo de ejecución). La implementación de Sun depende del proyecto stax-utils.

Actualización 2

Instalación JSXP

El área de descarga de archivos SJSXP se ve un poco raro, en el que usted tiene un archivo de clase, en lugar de tarros de construcción. Sin embargo, todo lo que se necesita para obtener el SJSXP JAR es ejecutar el archivo de clase, que descomprime la distribución.

Conseguir el API JAR StAX

El tarro API StAX (jsr173_api.jar o similar) se puede obtener del proyecto utilidades StAX. Necesita estar en el mismo directorio que el jar sjsxp.

El uso de los frascos en Eclipse

No es necesario añadir que los frascos se lib/ext del JDK. Es suficiente agregar los dos JAR a la ruta de compilación del proyecto.

+0

OK, estoy tratando de lidiar con esto con calma y evitando gritar. He descargado SJSXP y puse tanto sjsxp.jar como jsr173_1.0_api.jar en el directorio java/lib/ext, pero Eclipse se niega a darse cuenta de que hay un javax.xml.stream.XMLInputFactory en el classpath> :(help! –

+2

. Asegúrese de que Eclipse está utilizando el mismo JRE que está esperando? Poner cosas en lib/ext es un poco frágil. Debería estar bien en el classpath estándar. –

+0

@Tom H: buen punto. Lo comprobaré. –

17

Puedo indicarle findjar.com, que le permite ingresar un nombre de clase y determinar qué jar se requiere.

p. Ej. XMLInputFactory cede

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 para la referencia de findjar, herramienta clara –

+0

Nice. Gracias. –

+0

de hecho, findjar es una herramienta invaluable, lo he usado en el pasado con JavaEE y las cosas de WebSphere de IBM para encontrar donde alguna clase estaba mal documentada –

Cuestiones relacionadas