Java扩展类加载器加载具有任何扩展名或没有扩展名的JAR文件

时间:2019-08-30 13:49:52

标签: java classloader

在使用Java 8的Windows上...

我最近开始支持将遗留Java代码(单个jar文件)部署到JDK扩展目录$JAVA_HOME/lib/ext中的旧版应用程序。这是Java扩展类加载器使用的位置。这是加载应用程序代码的一种不寻常的方式,但是它可以工作。我将jar文件的扩展名从.jar文件更改为.BAK,以为该文件将被忽略。令我惊讶的是,这些类仍从重命名的文件加载。似乎扩展类加载器将加载$JAVA_HOME/lib/ext中的所有文件,而不管文件扩展名,甚至没有扩展名的文件。这与应用程序类加载器不同,应用程序类加载器仅在扩展名为.jar引用的文件夹中时才加载扩展名为.JAR-cp ".;./folder/*"的文件。

为什么与扩展类加载器不一致?这是设计使然还是错误?我在这些博客上找不到任何Oracle文档。

0 个答案:

没有答案