背景
我最近遇到了一个Java项目,要求我将JAR
文件IngrianNAE-5.0.0.jar
放入/usr/lib/jvm/java-8-oracle/jre/lib/ext/
目录。 (该指示是由离开的前开发人员制作的。)
构建工具在项目构建过程中没有获取此IngrianNAE-5.0.0.jar
,并且项目JAR文件无法与其IngrianNAE-5.0.0.jar
目录中没有此lib/ext/
的JVM一起运行
此外,即使我将此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
为例,它只是添加到/usr/lib/jvm/java-8-oracle/jre/lib/ext/
目录中的许多JAR中的一个,还有一些属性文件,例如IngrianNAE.properties
等。
问题详解
为什么我必须将这样的JAR添加到项目中,而不是添加到JVM中。
它是如何运作的?
我可以查看哪些文档来获取有关它的更多信息(或教程)?
答案 0 :(得分:2)
已安装的扩展是lib / ext目录中的JAR文件[...] 已安装的扩展扩展了平台的核心API [...] 安装的扩展定义的符号将在所有Java进程中可见
答案 1 :(得分:0)
由于IngrianNAE jar文件正在通过JCE扩展JVM功能,我相信(遗憾的是)必须在JVM级别应用扩展。