Обновление для ответа на изменения OP:
Когда JVM загружает класс, он будет использовать загрузчик классов, который загрузил «текущий» класс ( для спецификации JVM ). Так что, если вы используете метод Foo.main()
, который был загружен с вашим пользовательским загрузчиком классов, и вы хотите создать экземпляр Bar
, также загруженный через этот загрузчик классов, вам не нужно делать ничего особенного.
Однако, если ваш текущий метод - Baz.main()
, и он был загружен через системный путь к классам (указанный с помощью -cp
в командной строке), то вы должны явно загрузить этот класс через загрузчик классов. Там нет никакого способа обойти это. «Контекстный загрузчик классов» предназначен для кода приложения, для загрузки ресурсов; JVM игнорирует это.
Почти во всех случаях вам лучше создать путь к классам, включающий ваши специальные классы.