Разница между classpath и одобренным каталогом - PullRequest
16 голосов
/ 19 декабря 2008

Кто-нибудь знает, в чем разница между добавлением соответствующего JAR-файла (например, Apache XALAN) в одобренный каталог JRE и добавлением его в путь к классам приложения?

Можно ли взять jar-файл, который можно добавить в одобренную библиотеку, и вместо этого добавить его в путь к классам?

1 Ответ

25 голосов
/ 19 декабря 2008

Технически вы, вероятно, можете это сделать, но разница в том, что файлы JAR в одобренном каталоге загружаются загрузчиком классов начальной загрузки, который, вероятно, не совпадает с загрузчиком классов, который загружает ваши файлы JAR из пути к классам.

Существует классическая проблема XML с реализациями Xerces и Xalan XML, которые находятся в одобренном каталоге. Поскольку для новых приложений иногда требуются более новые версии обеих библиотек, а классы имеют одинаковые имена, существует проблема пути к классам.

Вы можете заменить библиотеки Xerces и Xalan в утвержденном каталоге (сделайте резервную копию старых!), Но это может испортить другие приложения, использующие ту же установку JRE.

Я даже видел эту проблему в 1 приложении, где одна библиотека зависит от одной версии, а другая - от другой версии xerces. Очень хлопотно, и нет никакого «общего подхода» к этому, или, по крайней мере, такого, который я нашел.

Google может найти несколько интересных статей, попробуйте найти ту, которая наилучшим образом соответствует вашей ситуации или проблеме.

...