启动可执行 JAR

org.springframework.boot.loader.launch.Launcher 类是一个特殊的引导类,用作可执行 JAR 的主要入口点。它是 JAR 文件中的实际 Main-Class,用于设置适当的 ClassLoader 并最终调用您的 main() 方法。

有三个启动器子类 (JarLauncherWarLauncherPropertiesLauncher)。它们的目的是从目录中的嵌套 JAR 文件或 WAR 文件 (而不是类路径上明确指定的文件) 加载资源 (.class 文件等)。对于 JarLauncherWarLauncher,嵌套路径是固定的。JarLauncherBOOT-INF/lib/ 中查找,而 WarLauncherWEB-INF/lib/WEB-INF/lib-provided/ 中查找。如果您需要更多,可以在这些位置添加额外的 JAR。

默认情况下,PropertiesLauncher 会在应用程序归档文件的 BOOT-INF/lib/ 中查找。您可以通过设置名为 LOADER_PATHloader.path 的环境变量(这是一个以逗号分隔的目录、归档文件或归档文件内目录的列表)来添加其他位置。

启动器清单

您需要将适当的 Launcher 指定为 META-INF/MANIFEST.MFMain-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 文件中推断出来的。