【发布时间】:2017-03-13 19:15:06
【问题描述】:
如何将自定义加载程序添加到可执行 jar? 目前,我通过打开 jar 文件、粘贴类并在末尾重新签名来手动执行此操作。 -.-
提前致谢, 佩德罗·席尔瓦
【问题讨论】:
标签: maven spring-boot spring-boot-maven-plugin
如何将自定义加载程序添加到可执行 jar? 目前,我通过打开 jar 文件、粘贴类并在末尾重新签名来手动执行此操作。 -.-
提前致谢, 佩德罗·席尔瓦
【问题讨论】:
标签: maven spring-boot spring-boot-maven-plugin
在使用 Spring Boot Loader 打包的应用程序时需要考虑两种类型的限制。
Zip 条目压缩
嵌套 jar 的 ZipEntry 必须使用 ZipEntry.STORED 方法保存。这是必需的,以便我们可以直接查找嵌套 jar 中的各个内容。嵌套 jar 文件本身的内容仍然可以压缩,外部 jar 中的任何其他条目也可以。
系统类加载器
启动的应用程序在加载类时应该使用Thread.getContextClassLoader()(大多数库和框架默认会这样做)。尝试通过ClassLoader.getSystemClassLoader() 加载嵌套的 jar 类将失败。请注意,java.util.Logging 始终使用系统类加载器,因此您应该考虑使用不同的日志记录实现。
如果上述限制意味着您不能使用 Spring Boot Loader,则可以考虑以下替代方案:
【讨论】: