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