启动可执行 Jars
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.path
的环境变量(在 loader.properties
中,这是一个以逗号分隔的目录、归档文件或归档文件中的目录列表)来添加其他位置。
启动器清单
您需要在 META-INF/MANIFEST.MF
的 Main-Class
属性中指定适当的 Launcher
。
您想要启动的实际类(即包含 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 中推导出来的。