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