Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java(JRE)捆绑到spring启动包/jar中?_Java_Spring_Jar_Spring Boot_Packaging - Fatal编程技术网

将Java(JRE)捆绑到spring启动包/jar中?

将Java(JRE)捆绑到spring启动包/jar中?,java,spring,jar,spring-boot,packaging,Java,Spring,Jar,Spring Boot,Packaging,有没有办法将spring引导应用程序捆绑到一个包含JRE的可执行jar中 我想我看到有人这样做(Josh Long?),结果是一个jar,你可以通过java-jar foo.jar甚至/foo.jar启动 我在谷歌上搜索了一个小时,但是找不到任何关于这个的文档,有人帮我吗 编辑: 我刚刚找到我在会议上看到的东西。SpringBoot1.3引入了一种称为可执行JAR的东西,它可以。 启用此功能可以像/my.jar一样运行jar,并将其绑定到unix init系统。 但是,您仍然需要在主机上安装ja

有没有办法将spring引导应用程序捆绑到一个包含JRE的可执行jar中

我想我看到有人这样做(Josh Long?),结果是一个jar,你可以通过
java-jar foo.jar
甚至
/foo.jar
启动

我在谷歌上搜索了一个小时,但是找不到任何关于这个的文档,有人帮我吗

编辑:

我刚刚找到我在会议上看到的东西。SpringBoot1.3引入了一种称为可执行JAR的东西,它可以。 启用此功能可以像
/my.jar
一样运行jar,并将其绑定到unix init系统。 但是,您仍然需要在主机上安装java

在gradle中启用此功能与将其添加到build.gradle中一样简单

springBoot {
    executable = true
}

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

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


如果你想坚持一个简单的Linux专用解决方案,你可能想试试这个:

你想做的是鸡和蛋的问题。如果JAR包含JRE,您希望如何运行JAR?这应该在哪个操作系统上运行?您可能正在搜索的是Java程序的安装程序。看看这里:所以我们正在讨论一个linux解决方案。这似乎是甲骨文使用java安装程序的诀窍,或者他们在这里做的事情:它也捆绑了JRE吗?我知道它不会捆绑JRE。那么你仍然认为这是一个合适的答案吗?您可以使用外部工具,就像它只是部分回答;)但根据我对jwrapper的评论,我们可以假设这是完整的答案;)我正在寻找spring提供的开箱即用的解决方案,它似乎不存在。所以这是最好的答案,现在接受它作为解决方案。