Как установить мой пользовательский загрузчик классов по умолчанию? - PullRequest
13 голосов
/ 27 сентября 2010

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

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

1 Ответ

14 голосов
/ 27 сентября 2010

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

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

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

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

...