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