将Java(JRE)捆绑到spring-boot包/ jar中?

时间:2015-09-23 19:13:21

标签: java spring jar spring-boot packaging

有没有办法将spring-boot应用程序捆绑到一个包含JRE的可执行jar?

我想我看到有人这样做(Josh Long?)导致了一个罐子,你可以通过java -jar foo.jar开始,甚至用./foo.jar

我在最后一小时用Google搜索了这个,但找不到任何关于此的文档,有人在那里帮助我吗?

编辑:

我刚刚在会议上看到了什么。 spring-boot 1.3引入了一个叫做可执行jar的东西,wrap the jar with a shell script。 启用此选项可以像./my.jar一样运行jar并将其绑定到unix init系统。 但是,您仍需要在主机上安装Java。

在gradle中启用此功能就像将其添加到build.gradle

一样简单
springBoot {
    executable = true
}

2 个答案:

答案 0 :(得分:2)

你可以使用Maven。这个maven plugin允许您创建包含所有依赖项的单个jar文件。接下来,您可以使用jwrapper等工具,它允许使用嵌入式JRE为许多平台构建可执行文件。

答案 1 :(得分:1)

您应该考虑使用Java安装程序/包装器,它将创建包含您的代码/ jar和JRE的本机二进制文件(某些解决方案甚至可以为您下载JRE) 积极的副作用是您(如果需要)可以为Linux,Windows和Mac创建解决方案。

如果您想坚持使用简单的Linux解决方案,可能需要尝试:Bash script containing binary executable