Как мне создать ClassLoader, который не будет искать родительский класс для загрузки классов - PullRequest
7 голосов
/ 26 марта 2011

Мне кажется, я понимаю, как работают иерархии загрузки классов. (JVM сначала просматривает родительскую иерархию)

Итак, я хотел бы создать ClassLoader или использовать существующую библиотеку, которая является совершенно отдельной областью и не смотрит на родительскую иерархию ClassLoading. На самом деле я ищу тот же эффект от запуска отдельной JVM, но буквально без этого.

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

1 Ответ

10 голосов
/ 26 марта 2011

Просто используйте URLClassLoader и укажите null в качестве родителя.

File myDir = new File("/some/directory/");
ClassLoader loader = null;
try {
    URL url = myDir.toURL();         
    URL[] urls = new URL[]{url};
    loader = new URLClassLoader(urls, null);
} 
catch (MalformedURLException e) 
{
    // oops
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...