実行可能ファイルの起動

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

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

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

ランチャーマニフェスト

META-INF/MANIFEST.MF の Main-Class 属性として適切な Launcher (Javadoc) を指定する必要があります。起動する実際のクラス (つまり、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 から推定されます。