啟動可執行 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 推匯出來的。 |