2013-11-26 4 views
3

Поместите файл jar в папку Tomcat/lib. И tomcat загружает файл jar.Как tomcat загружает файл jar?

Мой вопрос:

Как кот загрузить файл банку? например Распакуйте, затем проиндексируйте его, найдите его и загрузите с помощью отражения. Что я могу догадаться.

Есть ли какая-либо библиотека в java, из которой я могу сделать подобное приложение?

Моя цель:

У меня есть интерфейс Java, который предполагается расширить возможности применения. Существует реализация по умолчанию. Но в будущем он будет изменен и может иметь несколько копий/версию.
Идея состоит в том, чтобы обеспечить реализацию и упаковать ее в файл jar и поместить его в папку. Контейнер будет искать реализацию и перечислить реализацию.

конечного пользователя, которые используют приложение может выбрать по умолчанию или любую версию ...

Пример: По умолчанию тема ..

Теперь я интерфейс

public interface Theme 
{ 
    public void setName(); 
    public void setColor(); 
    public void setBGColor(); 
    public void getName(); 
    public void getColor(); 
    public void getBGColor(); 
} 

Администратор создал две темы, т.е. BlueWITHGreenBGTheme и GreenWITHBlackBGTheme. Скомпилировал его и упаковал и занес в папку.

Конечный пользователь теперь увидит три разные темы: тема по умолчанию, BlueWITHGreenBGTheme и GreenWITHBlackBGTheme. Он/она Выберите любую тему и цвет своего приложения и цвет фона.

Выше приведен пример, а не реальный сценарий.

+0

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

+0

Если вы хотите загрузить классы в файл jar, который не находится в пути к классам, вы можете использовать класс JarFile для получения имен классов, а затем использовать пользовательский загрузчик классов для загрузки классов, чтобы анализатор мог их проверять. – NormR

ответ

1

Tomcat использует обычай ClassLoader.

Вы также можете сделать свой собственный, но URLClassLoader удовлетворить реквизиты большинства разработчиков.

Не думайте, что URL-адрес касается Интернета, они также могут указывать на файлы локальных банок.

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