启动可执行 JARs
Launcher
类是一个特殊的引导类,用作可执行 JAR 的主要入口点。它是 JAR 文件中实际的 Main-Class
,用于设置适当的 ClassLoader
,并最终调用你的 main()
方法。
有三个 Launcher 子类(JarLauncher
、WarLauncher
和 PropertiesLauncher
)。它们的作用是从目录中的嵌套 JAR 文件或 WAR 文件加载资源(.class
文件等),而不是从类路径显式加载。对于 JarLauncher
和 WarLauncher
,嵌套路径是固定的。JarLauncher
会查找 BOOT-INF/lib/
,而 WarLauncher
会查找 WEB-INF/lib/
和 WEB-INF/lib-provided/
。如果你想添加更多 JAR 包,可以将它们放在这些位置。
PropertiesLauncher
默认会查找你的应用归档文件中的 BOOT-INF/lib/
。你可以通过设置名为 LOADER_PATH
的环境变量或在 loader.properties
中设置 loader.path
(这是一个逗号分隔的目录、归档文件或归档文件内目录列表)来添加额外位置。
Launcher 清单
你需要将适当的 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 推导出来的。 |