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