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