Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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 什么是自动可执行JAR?_Java_Spring Boot - Fatal编程技术网

Java 什么是自动可执行JAR?

Java 什么是自动可执行JAR?,java,spring-boot,Java,Spring Boot,我在阅读SpringBootMaven插件文档时遇到了一个术语“自动可执行jar” 有人能告诉我什么是自动可执行jar,它与普通jar文件有什么不同,它们是如何自动执行的吗 SpringBootMaven插件文档提到了这个术语,但没有进一步解释它 重新打包:创建一个自动可执行的jar或war文件。它可以替换常规工件,也可以使用单独的分类器附加到构建生命周期。Springboot应用程序的Maven构建首先构建您自己的应用程序,并将其打包到JAR文件中 在第二阶段(重新打包),它将把这个jar和依

我在阅读SpringBootMaven插件文档时遇到了一个术语“自动可执行jar”

有人能告诉我什么是自动可执行jar,它与普通jar文件有什么不同,它们是如何自动执行的吗

SpringBootMaven插件文档提到了这个术语,但没有进一步解释它


重新打包:创建一个自动可执行的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