実行可能ファイルの起動

org.springframework.boot.loader.launch.Launcher クラスは、実行可能な jar のメインエントリポイントとして使用される特別なブートストラップクラスです。これは、jar ファイルの実際の Main-Class であり、適切な ClassLoader をセットアップし、最終的に main() メソッドを呼び出すために使用されます。

3 つのランチャーサブクラス (JarLauncherWarLauncherPropertiesLauncher) があります。その目的は、(クラスパス上に明示的に存在するものではなく) ディレクトリ内のネストされた jar ファイルまたは war ファイルからリソース (.class ファイルなど) をロードすることです。JarLauncher および WarLauncher の場合、ネストされたパスは固定されます。JarLauncher は BOOT-INF/lib/ 内で検索され、WarLauncher は WEB-INF/lib/ および WEB-INF/lib-provided/ 内で検索されます。さらに必要な場合は、これらの場所に追加の jar を追加できます。

PropertiesLauncher は、デフォルトでアプリケーションアーカイブ内の BOOT-INF/lib/ を検索します。loader.properties (ディレクトリ、アーカイブ、アーカイブ内のディレクトリのカンマ区切りリスト) で LOADER_PATH または loader.path という環境変数を設定することで、場所を追加できます。

ランチャーマニフェスト

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 から推定されます。