启动可执行 Jar 文件
Launcher 类是一个特殊的引导类,用作可执行 jar 的主入口点。它是你的 jar 文件中实际的 Main-Class,用于设置合适的 ClassLoader,并最终调用你的 main() 方法。
有三个启动器子类(JarLauncher、WarLauncher 和 PropertiesLauncher)。它们的目的是从嵌套的 jar 文件或 war 文件中的目录加载资源(如 .class 文件等),而不是从显式指定的 classpath 中加载。对于 JarLauncher 和 WarLauncher,嵌套路径是固定的。JarLauncher 会在 BOOT-INF/lib/ 中查找,而 WarLauncher 会在 WEB-INF/lib/ 和 WEB-INF/lib-provided/ 中查找。如果需要更多 jar 文件,你可以在这些位置添加额外的 jar。
PropertiesLauncher 默认会在你的应用归档文件中的 BOOT-INF/lib/ 目录下查找。你可以通过设置名为 LOADER_PATH 的环境变量或在 loader.properties 中设置 loader.path(这是一个以逗号分隔的目录、归档文件或归档文件内目录的列表)来添加额外的位置。
Launcher Manifest
你需要将适当的 Launcher 指定为 META-INF/MANIFEST.MF 中的 Main-Class 属性。你希望启动的实际类(即包含 main 方法的类)应在 Start-Class 属性中指定。
以下示例展示了一个可执行 jar 文件的典型 MANIFEST.MF:
Main-Class: org.springframework.boot.loader.launch.JarLauncher
Start-Class: com.mycompany.project.MyApplication
对于 war 文件,如下所示:
Main-Class: org.springframework.boot.loader.launch.WarLauncher
Start-Class: com.mycompany.project.MyApplication
备注
你无需在清单文件中指定 Class-Path 条目。类路径会从嵌套的 jar 文件中推断得出。