【问题标题】:Bundling Java (JRE) into a spring-boot package/jar?将 Java (JRE) 捆绑到 spring-boot 包/jar 中?
【发布时间】: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
}

【问题讨论】:

标签: java spring jar spring-boot packaging


【解决方案1】:

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

如果您想坚持一个简单的仅限 Linux 的解决方案,您可能想试试这个:Bash script containing binary executable

【讨论】:

  • 一直在寻找spring提供的开箱即用的解决方案,貌似不存在。所以这是最好的答案,现在接受它作为解决方案。
【解决方案2】:

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

【讨论】:

  • 它也捆绑了 JRE 吗?
  • 据我所知,它不捆绑 JRE。
  • 那你还认为这是一个合适的答案吗? ;-)
  • 您可以使用jwrapper等外部工具
  • 这只是部分答案;)但是根据我对 jwrapper 的评论,我们可以假设它是完整答案;)
猜你喜欢
  • 2014-06-26
  • 1970-01-01
  • 2021-01-22
  • 2012-06-29
  • 2014-06-03
  • 2011-07-21
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多