実行可能な Jar の制限
Spring Boot Loader パッケージアプリケーションを使用するときは、次の制限を考慮する必要があります。
Zip エントリ圧縮: ネストされた jar の
ZipEntry
(標準 Javadoc) は、ZipEntry.STORED
(標準 Javadoc) メソッドを使用して保存する必要があります。これは、ネストされた jar 内の個々のコンテンツを直接シークできるようにするために必要です。ネストされた jar ファイル自体のコンテンツは、外側の jar 内の他のエントリと同様に、圧縮できます。
システム classLoader: 起動されたアプリケーションは、クラスをロードするときに
Thread.getContextClassLoader()
を使用する必要があります(ほとんどのライブラリとフレームワークはデフォルトでそうします)。ClassLoader.getSystemClassLoader()
でネストされた jar クラスをロードしようとすると失敗します。java.util.Logging
は常にシステムクラスローダーを使用します。このため、異なるロギング実装を検討する必要があります。