什么是自动可执行jar?

时间:2019-05-07 19:16:11

标签: java spring-boot

我正在查看spring-boot-maven-plugin文档,并遇到了术语自动可执行jar。

有人可以向我解释什么是自动可执行jar,它与普通jar文件有何不同以及如何自动执行?

spring-boot-maven-plugin文档中提到了该术语,但没有进一步解释

重新打包:创建一个可自动执行的jar或war文件。它可以代替常规工件,或者可以使用单独的分类器附加到构建生命周期。

4 个答案:

答案 0 :(得分:1)

Could someone please explain me what is an auto executable jar
  

完全可执行的jar可以像其他任何可执行文件一样执行   二进制文件,也可以在init.d或systemd中注册。这使它   常见的安装和管理Spring Boot应用程序非常容易   生产环境。

因此,总而言之,与使用可执行jar的其他可执行文件一样

how is it different then normal jar files and how they are auto executed?

需要使用java -jar来运行的Java文件

From Spring Docs

答案 1 :(得分:0)

Springboot应用程序的Maven构建首先构建您自己的应用程序,然后将其打包到JAR文件中。

在第二阶段(重新打包)中,它将带有相关树中所有jar文件的jar文件包装到新的 wrapper jar文件中。还将生成一个清单文件,其中定义了应用程序Main类是什么(也在 wrapper jar中)。

在mvn软件包之后,您还可以在目标目录中看到2个jar文件。原始文件和 wrapped jar文件。

您可以使用以下简单命令启动Springboot应用程序:

java -jar my-springboot-app.jar

答案 2 :(得分:0)

我建议自动可执行文件意味着您提供了main方法,以便可以使用java -jar选项启动它,否则它可能只是一个Java库。 这是来自https://docs.spring.io/spring-boot/docs/current/maven-plugin/repackage-mojo.html

的引用

重新打包现有的JAR和WAR归档文件,以便可以使用java -jar从命令行执行它们。使用layout = NONE还可简单地打包具有嵌套依赖关系(并且没有主类,因此不是可执行文件)的JAR。

答案 3 :(得分:0)

  • 可执行jar-具有在清单中声明的​​主类并且可以使用if()命令运行的jar
  • 其他广口瓶-不带主夹心的广口瓶。可以是任何东西-应用程序,库等。通过提供full.qualified.class.name作为入口点,例如false
  • ,仍可以运行应用程序
  • 自动执行的罐子-从未听说过:)