Наш продукт представляет собой автономное настольное приложение OS X, написанное на Java. Мы включили встроенную JRE для запуска нашего программного обеспечения.
Правила запуска JRE, похоже, помещают любые JAR файлы в /usr/lib/java
, /Library/Java/Extensions
и ~/Library/Java/Extensions
в путь к классам перед библиотеками, которые мы явно включаем в путь к классам.
Если у пользователя есть JAR файлы в любой из папок механизма расширения Java, тогда эти файлы JAR добавляются в наш путь к классам. Недавний инцидент с поддержкой возник из-за того, что у клиента была старая версия критической сторонней библиотеки в /usr/lib/java
- это приводило к неожиданному сбою нашего программного обеспечения при запуске.
Мне не удалось определить, как я могу отключить этот механизм расширения при вызове JRE, встроенного в наше приложение. Как я могу это сделать?
─────────
ПРИМЕЧАНИЕ: кажется, что этот механизм расширения устарел и в конечном итоге будет удален: https://blogs.oracle.com/java-platform-group/entry/planning_safe_removal_of_under)