启动可执行 Jar 包
org.springframework.boot.loader.launch.Launcher
类是一个特殊的引导类,用作可执行 jar 包的主入口点。它是 jar 文件中的实际Main-Class
,用于设置适当的ClassLoader
并最终调用你的main()
方法。
有三个启动器子类 (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
指定为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 包中推断出来的。 |