可執行 Jar 的限制

在使用 Spring Boot Loader 打包的應用時,您需要考慮以下限制:

  • Zip 條目壓縮:巢狀 jar 的 ZipEntry 必須使用 ZipEntry.STORED 方法儲存。這是必需的,以便我們可以直接跳轉到巢狀 jar 內的各個內容。巢狀 jar 檔案本身的內容以及外部 jar 中的任何其他條目仍然可以被壓縮。

  • System classLoader:啟動的應用在載入類時應該使用 Thread.getContextClassLoader()(大多數庫和框架預設如此)。嘗試使用 ClassLoader.getSystemClassLoader() 載入巢狀 jar 中的類會失敗。java.util.Logging 總是使用系統類載入器。因此,您應該考慮使用不同的日誌實現。