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

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

Bootstrap завантажувач класів Extensions завантажувач класів 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.

Примітки

Посилання Chuck Mcmanis, "The basics of Java class loaders ", 1996 Brandon E. Taylor, "Java Class Loading: The Basics ", 2003 Jeff Hanson, "Take Control of Class Loading in Java ", 2006-06-01 Andreas Schaefer, "Inside Class Loaders ", 2003-11-12 Sheng Liang and Gilad Bracha, "Dynamic class loading in the Java virtual machine ", In Proceedings of the 13th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'98), ACM SIGPLAN Notices, vol. 33, no. 10, ACM Press, 1998, pp. 36–44

Dr. Christoph G. Jung, "Classloaders Revisited Hotdeploy ", Java Specialist Newsletter, 2001-06-07 Don Schwarz, "Managing Component Dependencies Using ClassLoaders ", 2005-04-13