Java Classloader

Java Classloader (дослівно завантажувач класів Java) є частиною Java Runtime Environment, що динамічно завантажує Java класи в Java Virtual Machine.[1] Зазвичай класи завантажуються тільки за запитом (англ. on demand). Завдяки цьому, 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.

Примітки

  1. Mcmanis, Chuck (1 жовтня 1996). The basics of Java class loaders. JavaWorld. Процитовано 13 липня 2020.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.