Java: откуда загрузчик классов расширений получает классы в Java 13? - PullRequest
3 голосов
/ 30 сентября 2019

Во всей документации, которую мне удалось найти, упоминается папка 'jre / lib / ext', но ее нет в моей установке JRE 13.

Я предполагаю, что где-то между Java 8 (где я вижу jar в jre / lib / ext) и Java 13, они переместились, но я не смог точно определить, когда и как это было сделано.

Может ли кто-нибудь рассказать, что происходит с новыми JRE, с точки зрения того, где в данный момент находятся классы расширения?

1 Ответ

5 голосов
/ 30 сентября 2019

Механизм расширения отсутствует в Java 9, а не только перемещен [: - |см. Важные изменения и информация для Java 9: ​​

Устаревший механизм расширений удален. Среда выполнения откажется от запуска, если существует ${java.home}/lib/ext или в командной строке указано системное свойство java.ext.dirs.

А также Изменения установленного образа JDK / JRE in Руководство по миграции JDK 9 :

В предыдущих выпусках механизм расширения позволял среде выполнения находить и загружать классы расширений без специального указания их имен в пути к классам. ,В JDK 9, если вам нужно использовать классы расширений, убедитесь, что файлы JAR находятся в пути к классам.

...