2012-06-08 2 views
1

Windows XP Pro WebLogic 11g Tomcat 7 JDK 1.6Где размещать файлы JAR, чтобы избежать конфликтов?

Я помещал дополнительные JAR-файлы в

JAVA_HOME/jre/lib/ext (a JDK installation) 

в течение многих лет. Это гораздо удобнее, чем изменение моего CLASSPATH, и все, что я разрабатываю, имеет доступ к одному набору вещей в одном месте.

Мне нужен другой или лучший подход.

Недавно я установил WebLogic 11g на свой компьютер. Поскольку мне не нравится иметь несколько JDK или JVM на моей машине, я устанавливаю переменную JAVA_HOME, чтобы указать туда.

Затем я разместил сервлет-api.jar, чтобы скомпилировать мои webapps. Все было хорошо.

Затем я установил Tomcat 7. Tomcat 7 имеет свой собственный servlet-api.jar в CATALINA_HOME/lib. Имея servlet-api.jar в CATALINA_HOME/lib, а один в JAVA_HOME/jre/lib/ext заставляет Tomcat 7 выкидывать ошибки. Тем не менее, мне нужна одна в JAVA_HOME/jre/lib/ext для компиляции моих webapps.

Есть ли более изящное решение, чем удаление servelt-api.jar из CATALINA_HOME/lib?

Благодаря

+2

да, то не навели в JDK, положить их на пути к классам проекта – ianpojman

+0

Моя проблема с этим подходом является то, что это то, что JDK/JRE/Библиотека/внутр каталог для ... есть одно место, всегда на пути к классу, ставить вещи. – Steve

+1

, конечно, совсем не работает, если вы хотите использовать тот же JDK для запуска разных версий данного продукта. вы также можете столкнуться с проблемами загрузчика классов. (EE-серверы могут загружать свои собственные, разные классы сервлетов, тогда вы начнете получать странные ошибки ..) Я использую maven для управления моими зависимостями для меня, без ошибок при вводе вещей в lib/ext – ianpojman

ответ

1

Не помещайте Jar в /ext, но компилировать против вашей реальной основы EE. Таким образом, вы не столкнетесь с проблемами при изменении версии .jar с вашей Tomcat (или другой установкой EE). Поэтому не ставьте .jar в ext больше и измените путь сборки к вашей действительной среде EE.

+0

. Вам достаточно просто использовать свой ответ с Tomcat. Я просто указываю на каталог Tomcat/lib. Я действительно не мог сказать, была ли центральная библиотека в WebLogic 11g. – Steve

+0

Вам нужно будет решить, какова ваша целевая среда выполнения. Если их больше, вы должны настроить их отдельно - и вам будет быстро нужна автоматическая среда сборки, если это так. –

2

Java Tutorial: The Extension Mechanism От:

Механизм расширения обеспечивает стандартный, масштабируемый способ сделать пользовательские интерфейсы доступны для всех приложений, работающих на платформе Java . Расширения Java также называются необязательными пакетами. Этот след может использовать оба термина взаимозаменяемо.

Расширения представляют собой группы пакетов и классов, которые расширяют платформу Java через механизм расширения. Механизм расширения позволяет среде выполнения находить и загружать классы расширения без классов расширения, которые должны быть названы в пути класса. В классе , что классы расширения аналогичны классам ядра платформы Java. Это также то, где расширения получают свое имя - они, в эффекте, расширяют основной API платформы.

Поскольку этот механизм расширяет базовый API платформы, его использование должно быть применено . Чаще всего используется для колодцев , таких как те, которые определены сообществом Java Процесс, хотя он также может быть подходящим для всех интерфейсов сайта .

Смежные вопросы