2008-12-19 6 views
16

¿Alguien sabe cuál es la diferencia entre agregar un archivo JAR apropiado (por ejemplo, Apache XALAN) al directorio respaldado de JRE y agregarlo al classpath de la aplicación?Diferencia entre classpath y endorsed directory

¿Es posible tomar un archivo jar que se puede agregar a la lib endorsed y agregarlo en su lugar a la classpath?

Respuesta

25

Técnicamente puede hacerlo, pero la diferencia es que los archivos jar en el directorio endosado son cargados por el cargador de clases bootstrap, que probablemente no es el mismo cargador de clases que el que carga los archivos jar desde classpath.

Existe un problema clásico de XML con las implementaciones Xerces y Xalan XML que están en el directorio endosado. Debido a que las aplicaciones más nuevas a veces requieren versiones más nuevas de ambas bibliotecas, y las clases tienen los mismos nombres, existe un problema de ruta de clase.

Puede reemplazar las bibliotecas Xerces y Xalan en el directorio endosado (¡haga una copia de seguridad de las anteriores!) Pero posiblemente pueda arruinar otras aplicaciones que utilizan la misma instalación JRE.

Incluso he visto este problema dentro de 1 aplicación donde una biblioteca depende de una versión, y otra biblioteca depende de otra versión de xerces. Muy problemático, y no hay un "enfoque general" para esto, o al menos ninguno que encontré.

Hay algunos artículos interesantes que Google puede encontrar fácilmente al respecto, trate de encontrar el que mejor se adapte a su situación o problema.