可执行 Jar 限制
使用 Spring Boot Loader 打包的应用程序时,需要考虑以下限制:
-
Zip 条目压缩:嵌套 jar 的
ZipEntry必须使用ZipEntry.STORED方法保存。这是必需的,以便我们可以直接定位嵌套 jar 中的各个内容。嵌套 jar 文件本身的内容仍然可以被压缩,外层 jar 中的任何其他条目也可以。
-
系统类加载器:启动的应用程序在加载类时应使用
Thread.getContextClassLoader()(大多数库和框架默认这样做)。尝试使用ClassLoader.getSystemClassLoader()加载嵌套 jar 类将会失败。java.util.Logging始终使用系统类加载器。因此,您应该考虑使用不同的日志实现。