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