可执行Jar包限制

在使用Spring Boot Loader打包的应用程序时,需要注意以下限制:

  • Zip条目压缩: 嵌套jar的ZipEntry必须通过ZipEntry.STORED方法保存。 这样做是为了能够直接定位到嵌套jar中的具体内容。 嵌套jar文件本身的内容仍然可以被压缩,外部jar中的其他条目也可以被压缩。

  • 系统classLoader: 启动的应用程序在加载类时应使用 Thread.getContextClassLoader() (大多数库和框架默认如此)。 尝试通过 ClassLoader.getSystemClassLoader() 加载嵌套jar类会失败。 java.util.Logging 始终使用系统classloader。 因此,建议考虑使用不同的日志实现。