Подтвердить что ты не робот

Как установить мой пользовательский загрузчик классов по умолчанию?

Я пытаюсь практиковать себя с пользовательскими загрузчиками классов, и у меня есть некоторые вопросы. Есть ли способ указать JVM использовать мой пользовательский загрузчик классов во всем мире? Например, я написал небольшое приложение под Tomcat 6. Сервлет управляется контейнером, где я должен установить загрузчик класса? Кроме того, webapp использует некоторые сторонние банки, могу ли я контролировать загрузку классов этих банок?

Ответы на вышеизложенное будут отличаться в случае автономного приложения?

Спасибо!

4b9b3361

Ответ 1

Вы можете установить системный загрузчик классов по умолчанию в качестве аргумента JVM:

java -Djava.system.class.loader
    =com.test.YourCustomClassLoader com.test.YourMainClass

Поскольку Tomcat запускается как приложение Java, вы также можете установить этот параметр в исполняемом файле %TOMCAT_HOME%\bin\run.bat или $TOMCAT_HOME/bin/run.sh.

Изменить для завершения: Если вы установите загрузчик классов в качестве загрузчика класса System, он будет использоваться для загрузки классов компонентов Tomcat, разных библиотек и ваших собственных классов. Если вы хотите, чтобы ваш загрузчик классов использовался только для ваших классов приложений (включая библиотеки и т.д.), Вы должны настроить элемент Loader для своего контекста. Элемент Loader должен быть определен внутри вашего элемента Context, который может быть определен в файле context.xml. Дополнительная информация: