【发布时间】:2015-09-23 19:13:20
【问题描述】:
有没有办法将 spring-boot 应用程序捆绑到一个包含 JRE 的可执行 jar 中?
我想我看到有人这样做(乔什·朗?),结果是你可以通过java -jar foo.jar 甚至./foo.jar 启动一个罐子
我在最后一个小时用谷歌搜索了这个,但找不到任何关于这个的文档,有人可以帮助我吗?
编辑:
我刚刚找到了我在会议上看到的内容。 spring-boot 1.3 引入了一些称为可执行 jar 的东西,wrap the jar with a shell script。
启用此功能可以像 ./my.jar 一样运行您的 jar,并将其绑定到 unix init 系统。
但是,您仍然需要在主机上安装 java。
在 gradle 中启用此功能就像将其添加到您的 build.gradle 一样简单
springBoot {
executable = true
}
【问题讨论】:
-
您正在尝试做的是一个先有鸡还是先有蛋的问题。如果 JAR 包含 JRE,您希望如何运行 JAR?这应该在哪个操作系统上运行?您可能正在搜索的是 Java 程序的安装程序。看看这里:stackoverflow.com/questions/184060/java-application-installers
-
所以我们正在讨论一个 linux 解决方案。这似乎与 Oracle 用于其 Java 安装程序或他们在这里所做的相同的技巧:linuxjournal.com/content/add-binary-payload-your-shell-scripts
标签: java spring jar spring-boot packaging