Java 什么是自动可执行JAR?
我在阅读SpringBootMaven插件文档时遇到了一个术语“自动可执行jar” 有人能告诉我什么是自动可执行jar,它与普通jar文件有什么不同,它们是如何自动执行的吗 SpringBootMaven插件文档提到了这个术语,但没有进一步解释它Java 什么是自动可执行JAR?,java,spring-boot,Java,Spring Boot,我在阅读SpringBootMaven插件文档时遇到了一个术语“自动可执行jar” 有人能告诉我什么是自动可执行jar,它与普通jar文件有什么不同,它们是如何自动执行的吗 SpringBootMaven插件文档提到了这个术语,但没有进一步解释它 重新打包:创建一个自动可执行的jar或war文件。它可以替换常规工件,也可以使用单独的分类器附加到构建生命周期。Springboot应用程序的Maven构建首先构建您自己的应用程序,并将其打包到JAR文件中 在第二阶段(重新打包),它将把这个jar和依
重新打包:创建一个自动可执行的jar或war文件。它可以替换常规工件,也可以使用单独的分类器附加到构建生命周期。Springboot应用程序的Maven构建首先构建您自己的应用程序,并将其打包到JAR文件中 在第二阶段(重新打包),它将把这个jar和依赖树中的所有jar文件打包到一个新的包装器jar归档文件中。它还将生成一个清单文件,其中定义了应用程序主类是什么(也在包装器jar中) 在mvn包之后,您还可以在目标目录中看到2个jar文件。原始文件和包装的jar文件 您可以使用以下简单命令启动Springboot应用程序:
java -jar my-springboot-app.jar
Springboot应用程序的Maven构建首先构建您自己的应用程序,并将其打包到JAR文件中 在第二阶段(重新打包),它将把这个jar和依赖树中的所有jar文件打包到一个新的包装器jar归档文件中。它还将生成一个清单文件,其中定义了应用程序主类是什么(也在包装器jar中) 在mvn包之后,您还可以在目标目录中看到2个jar文件。原始文件和包装的jar文件 您可以使用以下简单命令启动Springboot应用程序:
java -jar my-springboot-app.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文件
完全可执行的jar可以像任何其他可执行文件一样执行
二进制文件,也可以在init.d或systemd中注册。这就够了
非常容易安装和管理常见的Spring Boot应用程序
生产环境
总之,当您使用可执行jar时,它与任何其他可执行文件一样
how is it different then normal jar files and how they are auto executed?
您需要使用java-jar运行一个java文件
我可能会建议,自动可执行意味着您提供了main方法,以便可以使用java-jar选项启动它,否则它可能只是一个java库。
这里有一段引用自
重新打包现有的JAR和WAR档案,以便可以使用java-JAR从命令行执行它们。With layout=NONE也可以简单地用嵌套的依赖项(没有主类,所以不可执行)打包JAR。我可能建议自动可执行意味着您提供了main方法,以便可以使用java-JAR选项启动它,否则它可能只是一个java库。
这里有一段引用自
重新打包现有的JAR和WAR档案,以便可以使用java-JAR从命令行执行它们。With layout=NONE也可以简单地用于打包带有嵌套依赖项的JAR(并且没有主类,因此不可执行)。
- 可执行jar—在清单中声明了主类的jar,可以使用
java-jar yourJarFile.jar
命令运行
- 其他罐-不含主钙的罐。可以是任何内容—应用程序、库等。仍然可以通过提供full.qualified.class.name作为入口点来运行应用程序,如
java-cp yourJarFile.jar my.bootstrap.BootstrapClass
- 自动可执行jars-从未听说过:)
- 可执行jar—在清单中声明了主类的jar,可以使用
java-jar yourJarFile.jar
命令运行
- 其他罐-不含主钙的罐。可以是任何内容—应用程序、库等。仍然可以通过提供full.qualified.class.name作为入口点来运行应用程序,如
java-cp yourJarFile.jar my.bootstrap.BootstrapClass
- 自动可执行jars-从未听说过:)
从未听说过自动可执行JAR。从未听说过自动可执行JAR。这似乎是正确的,但它回避了如何实现结果的问题。特别是,自动可执行jar是否仍然是一个普通的jar,可以通过
jar
工具进行检查、解包甚至修改?答案似乎是“完全可执行的jar通过在文件前面嵌入一个额外的脚本来工作”,这是有道理的。然而,“目前,一些工具不接受这种格式,因此您可能无法始终使用这种技术。例如,jar-xf
可能无法自动提取已完全可执行的jar或war”,我怀疑这实际上低估了问题。在我看来,“自动可执行jar”根本不是普通意义上的jar。完全可执行jar不同于可执行jar,可以通过java-jar
命令运行。它是为在生产环境中运行而设计的,如linux和/my jar.jar
或windows中执行.exe文件。这似乎是正确的,但它回避了如何实现结果的问题。特别是,自动可执行jar是否仍然是一个普通的jar,可以通过jar
工具进行检查、解包甚至修改?答案似乎是“完全可执行的jar通过在文件前面嵌入一个额外的脚本来工作”,这是有道理的。然而,“目前,一些工具不接受这种格式,因此您可能无法始终使用这种技术。例如,jar-xf
可能无法自动提取已完全可执行的jar或war”,我怀疑这实际上低估了问题。在我看来,“autoex