В чем отличие помещения JAR-файлов в библиотеку JVM по сравнению с библиотекой проекта? - PullRequest
0 голосов
/ 01 мая 2018

Фон

Недавно я натолкнулся на проект Java, который требует от меня поместить JAR файл IngrianNAE-5.0.0.jar в каталог /usr/lib/jvm/java-8-oracle/jre/lib/ext/. (Инструкция была сделана бывшим разработчиком, который ушел.)

Инструмент сборки не получает этот IngrianNAE-5.0.0.jar во время процесса построения проекта, и JAR-файл проекта не может работать с JVM, у которого нет этого IngrianNAE-5.0.0.jar в каталоге lib/ext/.

Кроме того, даже если я включу этот IngrianNAE-5.0.0.jar в мой путь сборки, например, заявив об этом в разделе зависимостей в Maven pom.xml, проект все еще требует, чтобы JVM имела IngrianNAE-5.0.0.jar в своем каталоге lib/ext/. (На этом этапе Maven может создать JAR-файл проекта, который содержит IngrianNAE-5.0.0.jar. Однако JVM все еще должен иметь IngrianNAE-5.0.0.jar в каталоге lib/ext/. Мне кажется, что этот IngrianNAE-5.0.0.jar не используется проектом, но JVM.)

Кстати, как пример IngrianNAE-5.0.0.jar, это всего лишь один из многих JAR-файлов, добавляемых в каталог /usr/lib/jvm/java-8-oracle/jre/lib/ext/ вместе с несколькими файлами свойств, такими как IngrianNAE.properties и т. Д.

Разработка вопроса

Зачем мне добавлять такие JAR-файлы не в проект, а в JVM.

Как это работает?

Какие документы я могу просмотреть, чтобы получить больше информации (или учебные пособия) об этом?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Поскольку jar-файл IngrianNAE расширяет возможности JVM через JCE, я считаю (к сожалению), что расширение должно применяться на уровне JVM.

0 голосов
/ 01 мая 2018

Документация от Oracle

Установленные расширения - это файлы JAR в каталоге lib / ext [...] установленные расширения расширяют базовый API платформы [...] символы, определенные установленными расширениями, будут видны во всех процессах Java

См. Также этот вопрос

...