Насколько сложно загружать файлы JAR из другого места? - PullRequest
0 голосов
/ 17 августа 2011

У меня есть следующий сценарий.Я работаю с сервером, на котором есть папка lib, содержащая все ее JAR-файлы, но при наличии нескольких приложений для сервера все становится несколько сложнее, так как каталог lib становится сумасшедшим.

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

Ответы [ 2 ]

4 голосов
/ 17 августа 2011

Насколько я знаю, невозможно загрузить файлы JAR или установить CLASSPATH во время выполнения, если вы не написали свой собственный загрузчик классов.Хорошим примером является Tomcat, в котором загрузчик классов Tomcat динамически загружает файлы JAR в многоуровневом режиме.

http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

Существует общий загрузчик классов, который позволяет совместно использовать файлы JAR.по всем веб-приложениям.Однако, если вы хотите добавить файлы jar, которые загружаются только для веб-приложения, вы должны добавить их в webroot, например, WEB-INF / lib.Библиотеки в этой папке доступны не всем приложениям.Например, это означает, что если два веб-приложения используют разные версии одной и той же библиотеки, они не будут перепутаны.

Поскольку я использую maven для управления проектом, мне не нужно беспокоиться о том, кудапоставить мои джа зависимости.Maven автоматически связывает библиотеки в файл war для меня.

Так что, если вы не используете контейнер сервлетов, например, tomcat, jetty и т. Д., Вам нужно написать загрузчик классов.Если это необходимо, взгляните на кота, но это может быть нелегко.

2 голосов
/ 17 августа 2011

Вы можете добавить каталоги к пути к классам в Java 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...