Ответ 1
JVM способен загружать классы или файлы из файла jar без извлечения jar в файлы temp.
Эта функциональность также доступна вам в стандартной библиотеке, см. JarFile
для получения дополнительной информации.
Итак, нет, JVM не извлекает банку в файлы temp, классы (и ресурсы) просто загружаются по требованию.
Файл jar в основном представляет собой zip файл с предопределенной записью "META-INF/MANIFEST.MF"
(это является обязательным только в случае исполняемого баннера). Эта запись MANIFEST.MF
(файл) содержит некоторую информацию, прочитанную JVM. Подробнее о файлах манифеста:
Работа с файлами манифеста: основы
В случае исполняемого баннера файл манифеста также содержит основной класс, который должен быть загружен, и метод public static void main(String[])
, который должен быть вызван для запуска приложения. Запись манифеста Main-Class
указывает основной класс:
Main-Class: classname