Spring boot jar清单是否支持“类路径”?为什么要使用spring引导加载程序呢?
我知道spring boot使用Spring boot jar清单是否支持“类路径”?为什么要使用spring引导加载程序呢?,spring-boot,manifest,spring-boot-maven-plugin,Spring Boot,Manifest,Spring Boot Maven Plugin,我知道spring boot使用spring boot loader打包了一个可执行jar,并使用名为JarLauncher的类从boot-INF/lib加载其他jar,如中所述 阅读之后,我想清单中的类路径也可以做到这一点 那么,为什么spring boot要做这么多工作来从定制的boot-INF/lib加载JAR,而不是简单地在META-INF/MANIFEST.MF中写入JAR呢 Class-Path: BOOT-INF/lib 类路径清单方法不支持从嵌套在jar中的jar文件加载类。从
spring boot loader
打包了一个可执行jar,并使用名为JarLauncher
的类从boot-INF/lib
加载其他jar,如中所述
阅读之后,我想清单中的类路径
也可以做到这一点
那么,为什么spring boot要做这么多工作来从定制的boot-INF/lib
加载JAR,而不是简单地在META-INF/MANIFEST.MF
中写入JAR呢
Class-Path: BOOT-INF/lib
类路径
清单方法不支持从嵌套在jar中的jar文件加载类。从您在问题中链接到的Oracle文档中:
类路径头指向本地网络上的类或JAR文件,而不是JAR文件中的JAR文件或可通过Internet协议访问的类。要将JAR文件中的JAR文件中的类加载到类路径中,必须编写自定义代码来加载这些类。例如,如果MyJar.jar包含另一个名为MyUtils.jar的jar文件,则不能使用MyJar.jar清单中的类路径头将MyUtils.jar中的类加载到类路径中
Spring Boot的
JarLauncher
和Spring Boot loader
中的其他类是自定义代码,允许从嵌套在jar中的jar加载类。对不起,我误解了我发布的Oracle文档的含义……当看到Java没有提供任何标准方法从spring boot doc加载嵌套jar文件时,我感到困惑。谢谢你指出错误,现在一切都清楚了:D