Перейти до вмісту

Java Classloader

Матеріал з Вікіпедії — вільної енциклопедії.

Java Classloader(завантажувач класів) є частиною Java Runtime Environment, що динамічно завантажує Java-класів в Java Virtual Machine. Зазвичай класи завантажуються тільки на вимогу. Завдяки цьому Java не має необхідности мати знання про файли і файлову систему.

У мові Java, бібліотеки, як правило, упаковані у файли Jar. Бібліотеки можуть містити об'єкти різних типів. Найбільш важливим об'єктом являється клас. Java Classloader відповідальний за знаходження бібліотек, прочитання вмісту та завантаження класів що містяться в бібліотеках. Часто завантаження класів здійснюєтья на вимигу.

Процес завантаження класів

Кожен клас Java повинен бути завантажений завантажувачем класів. Коли JVM стартує, три завантажувачі класів використовуються:

  1. Bootstrap завантажувач класів
  2. Extensions завантажувач класів
  3. System завантажувач класів

Bootstrap завантажувач класів завантажує бібліотеки ядра Java(<JAVA_HOME>/lib директорія). Цей завантажувач класів, є частиною ядра JVM, написаний в придатному для данної оперативної системи коді.

Extensions завантажувач класів завантажує код в директорії <JAVA_HOME>/lib/ext чи в іншій директорії, яка прописана у параметрі java.ext.dirs. Імплементаця в sun.misc.Launcher$ExtClassLoader.

System(системний) завантажувач класів завантажує класи що знаходяться на шлях java.class.path, який мапується CLASSPATH системною змінною. Імплементований класом sun.misc.Launcher$AppClassLoader.

Зовнішні посилання