啟動可執行 Jar
Launcher 類是一個特殊的引導類,用作可執行jar包的主要入口點。它是你jar檔案中的實際 Main-Class,用於設定合適的 ClassLoader 並最終呼叫你的 main() 方法。
有三個啟動器子類(JarLauncher、WarLauncher 和 PropertiesLauncher)。它們的作用是從目錄中的巢狀jar檔案或war檔案中載入資源(.class檔案等),而不是從明確在classpath中的載入。對於 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 條目。Classpath是根據巢狀的jar包推匯出來的。 |