Java: откуда загрузчик классов расширений получает классы в Java 13?
Во всей документации, которую я смог найти, упоминается папка jre/lib/ext, но ее нет в моей установке JRE 13.
Я предполагаю, что где-то между Java 8 (где я вижу банки в jre/lib/ext) и Java 13 они переместились, но я не смог точно определить, когда и как это было сделано.
Может ли кто-нибудь уточнить, что происходит с новыми JRE с точки зрения того, где в настоящее время находятся классы расширения?
1 ответ
Механизм расширения исчез с Java 9, а не только перемещен [:-| см. важные изменения и информацию для Java 9:
Устаревший механизм расширений удален. Среда выполнения откажется запускаться, если
${java.home}/lib/ext
существует или системное свойствоjava.ext.dirs
указывается в командной строке.
А также изменения в установленном образе JDK/JRE в руководстве по миграции JDK 9:
В предыдущих выпусках механизм расширения позволял среде выполнения находить и загружать классы расширений без их специального именования в пути к классам. В JDK 9, если вам нужно использовать классы расширения, убедитесь, что файлы JAR находятся на пути к классам.