您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

打包成JAR文件和WAR文件,到底有什么区别?

时间:2023-03-08 11:40:45  来源:今日头条  作者:Java编程世界

 

Spring Boot是一种基于Spring框架的快速开发应用程序的工具,可以轻松地构建可部署的独立应用程序。在使用Spring Boot时,你可能会注意到有两种不同的部署选项:打包成JAR文件和WAR文件。在这篇文章中,我们将深入探讨这两种部署选项之间的差异和使用场景。

JAR和WAR文件的概述

在了解JAR和WAR文件的差异之前,让我们首先了解一下它们各自是什么。

 

 

JAR文件

JAR文件是JAVA Archive的缩写,它是一种用于打包Java类、资源文件和元数据的标准格式。JAR文件可以包含Java类文件、图像、html文件、声音文件、属性文件等各种资源文件。JAR文件通常用于打包Java应用程序,它可以将所有需要的类和资源打包到一个文件中,并通过Java虚拟机(JVM)来运行。

WAR文件

WAR文件是Web Archive的缩写,它是一种用于打包Web应用程序的标准格式。WAR文件可以包含Java类文件、JSP页面、HTML页面、cssJavaScript和其他Web资源文件。WAR文件通常用于将Web应用程序部署到Web服务器中。

JAR和WAR文件的区别

打包方式

JAR文件和WAR文件的打包方式是不同的。JAR文件是将所有的资源文件和Java类文件打包成一个JAR文件,而WAR文件则是将Web应用程序的所有资源文件和Java类文件打包成一个WAR文件。

部署方式

JAR文件和WAR文件的部署方式也是不同的。JAR文件可以在任何Java环境中运行,只要JVM能够识别并运行它。它可以通过java -jar命令来启动应用程序,也可以通过将JAR文件放置在Web服务器的类路径下来部署应用程序。但是,由于JAR文件不包含Web应用程序所需的Web.xml文件,所以无法直接在Web容器中部署。

WAR文件则是专门用于Web应用程序部署的,它可以直接部署在Web容器中。Web容器可以根据Web.xml文件中的配置信息来部署和管理Web应用程序。WAR文件可以通过将WAR文件复制到Web容器的WebApps目录下来部署Web应用程序。Web容器会在启动时自动解压WAR文件,并将其中的资源文件和Java类文件放置在适当的目录下。

适用场景

JAR文件和WAR文件的适用场景也是不同的。JAR文件通常用于打包独立的Java应用程序,它可以在任何Java环境中运行,而不需要任何其他的依赖关系。它适用于开发独立应用程序,如命令行工具、桌面应用程序等。由于JAR文件不包含Web.xml文件和其他Web相关的配置文件,所以不适合用于Web应用程序的部署。

WAR文件则是专门用于Web应用程序的打包和部署的。它可以包含Web应用程序的所有资源文件和Java类文件,并提供了一种标准化的部署方式。WAR文件适用于开发Web应用程序,如基于Spring Boot的Web应用程序、基于Servlet的Web应用程序等。它可以在Web容器中部署,Web容器可以根据WAR文件中的配置信息来管理和部署Web应用程序。

Spring Boot打包成JAR文件和WAR文件的区别

Spring Boot支持将应用程序打包成JAR文件和WAR文件。默认情况下,Spring Boot会将应用程序打包成JAR文件。如果需要将应用程序打包成WAR文件,则需要修改pom.xml文件,并将打包方式设置为war。

JAR文件部署

将Spring Boot应用程序打包成JAR文件后,可以通过java -jar命令来启动应用程序。当JVM启动时,它会自动查找JAR文件中的可执行类,并启动应用程序。JAR文件的部署非常简单,只需要将JAR文件复制到目标服务器上,然后在命令行中执行java -jar命令即可。

WAR文件部署

将Spring Boot应用程序打包成WAR文件后,可以将WAR文件部署到Web容器中。Web容器会在启动时自动解压WAR文件,并将其中的资源文件和Java类文件放置在适当的目录下。在Spring Boot应用程序中,需要配置一个ServletInitializer类,以便Web容器能够正确地初始化Spring Boot应用程序。ServletInitializer类继承了
SpringBootServletInitializer,并重写了configure()方法,以配置Spring Boot应用程序的入口点。

JAR文件和WAR文件的优缺点

现在让我们来总结一下JAR文件和WAR文件的优缺点。

JAR文件的优点

  • 部署简单。JAR文件可以在任何Java环境中运行,只需要JVM能够识别并运行它。
  • 可独立运行。JAR文件包含了所有的资源文件和Java类文件,可以在任何支持Java的操作系统上运行。
  • 轻量级。JAR文件通常比WAR文件小,因为它只包含应用程序所需的Java类文件和资源文件。

JAR文件的缺点

  • 不适合Web应用程序。JAR文件不包含Web.xml文件和其他Web相关的配置文件,无法直接在Web容器中部署Web应用程序。
  • 不支持JSP页面。JAR文件不支持JSP页面,因为JSP页面需要在Web容器中运行。

WAR文件的优点

  • 适合Web应用程序。WAR文件包含了Web.xml文件和其他Web相关的配置文件,可以直接在Web容器中部署Web应用程序。
  • 支持JSP页面。WAR文件可以包含JSP页面和其他Web资源文件,并可以在Web容器中运行。

WAR文件的缺点

  • 部署复杂。WAR文件需要在Web容器中部署,需要配置Web容器,并且需要遵循一定的部署流程和规范。
  • 依赖Web容器。WAR文件必须在支持Java Servlet规范的Web容器中运行,不适用于独立运行的Java应用程序。
  • 大型文件。WAR文件通常比JAR文件大,因为它包含了大量的资源文件和配置文件。

如何选择JAR文件和WAR文件

选择JAR文件和WAR文件取决于应用程序的需求和部署环境。如果应用程序是一个独立运行的Java应用程序,没有Web相关的功能和配置,那么可以选择JAR文件。如果应用程序是一个Web应用程序,并需要在Web容器中运行,那么必须选择WAR文件。

在选择JAR文件和WAR文件时,还需要考虑应用程序的性能和可维护性。通常情况下,JAR文件的性能比WAR文件更好,因为它们不需要依赖Web容器。但是,WAR文件在部署和维护方面更加方便,因为它们包含了所有的Web相关配置文件和资源文件,并且遵循了标准化的部署流程。

如何打包Spring Boot应用程序成JAR文件和WAR文件

在Spring Boot应用程序中,可以通过修改pom.xml文件来打包应用程序成JAR文件和WAR文件。

打包成JAR文件

默认情况下,Spring Boot应用程序会被打包成JAR文件。如果需要修改JAR文件的名称和版本号,可以在pom.xml文件中添加如下配置:

<build>
    <finalName>my-application</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.5.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

 

在执行mvn package命令时,Spring Boot会将应用程序打包成my-application.jar文件。

打包成WAR文件

如果需要将Spring Boot应用程序打包成WAR文件,可以在pom.xml文件中添加如下配置:

<packaging>war</packaging>

<build>
    <finalName>my-application</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.5.4</version>
            <executions>
                <execution>
                        <goals>
                    <goal>repackage</goal>
                </goals>
                <configuration>
                    <classifier>exec-war</classifier>
                    <mainClass>com.example.Application</mainClass>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>
</build>
 

在执行mvn package命令时,Spring Boot会将应用程序打包成my-application.war文件。需要注意的是,如果应用程序依赖于一些非Web相关的依赖,比如数据库驱动程序,需要将这些依赖声明为provided,以避免将它们打包进WAR文件中。

总结

在本文中,我们介绍了Spring Boot应用程序的打包和部署方式,并讨论了JAR文件和WAR文件的优缺点。JAR文件适用于独立运行的Java应用程序,而WAR文件适用于Web应用程序。选择JAR文件和WAR文件需要根据应用程序的需求和部署环境进行决策。Spring Boot可以通过修改pom.xml文件来打包应用程序成JAR文件和WAR文件,具体方法在上文中已经详细介绍。



Tags:JAR   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
如何将本地jar文件打包到 springboot 执行jar文件中
这一系列课程将包含Spring Boot 许多关键的技术和工具,包括 Mybatis-Plus、Redis、Mongodb、MinIO、Kafka、MySQL、消息队列(MQ)、OAuth2 等相关内容。如何将本地jar文件打包到...【详细内容】
2023-10-27  Search: JAR  点击:(271)  评论:(0)  加入收藏
浅析 SpringBoot FatJar 机制的设计与实现
一、概述SpringBoot FatJar 的设计,打破了标准 jar 的结构,在 jar 包内携带了其所依赖的 jar 包,通过在标准 jar 包中指定的 Main-Class 的 main 方法启动后,创建自己的类加载器...【详细内容】
2023-07-07  Search: JAR  点击:(190)  评论:(0)  加入收藏
再见,Ubuntu,你好,Manjaro
作者 | Jenny List译者 | 明明如月责编 | 夏萌出品 | CSDN(ID:CSDNnews)本文作者从 Ubuntu 转向 Manjaro 的决定引发了网友们的热议。许多网友赞扬了 Arch Linux(Manjaro 的基础...【详细内容】
2023-06-13  Search: JAR  点击:(337)  评论:(0)  加入收藏
针对 jar 和 vue 的一键自动化部署工具,界面友好,操作简单(已开源)
前言easy-jenkins是一款对vue和jar的部署工具,操作简单,实行一键部署,内部结构采用流水线形式架构,每次部署,时时提供部署过程,部署记录,界面友好简洁,使用方便,符合用户常规操作easy...【详细内容】
2023-03-08  Search: JAR  点击:(162)  评论:(0)  加入收藏
打包成JAR文件和WAR文件,到底有什么区别?
Spring Boot是一种基于Spring框架的快速开发应用程序的工具,可以轻松地构建可部署的独立应用程序。在使用Spring Boot时,你可能会注意到有两种不同的部署选项:打包成JAR文件和...【详细内容】
2023-03-08  Search: JAR  点击:(210)  评论:(0)  加入收藏
tar、gzip、zip、jar是什么,怎么查看?
如果你是后端程序员,我想你一定见过*.tar.gz、*.zip、*.jar后缀的文件吧,这些都是压缩文件,那这些文件都是怎么生成的,又有哪些关键区别呢?本文将带你一起了解这些文件和配套的操作命令,以及其经常使用的场景。 tar与gzip...【详细内容】
2022-09-19  Search: JAR  点击:(459)  评论:(0)  加入收藏
如何防止你的 jar 包被反编译?
Java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!之所以会对java的反编译...【详细内容】
2022-08-30  Search: JAR  点击:(441)  评论:(0)  加入收藏
防止jar被反编译——最简单的方法
有的时候,给别人提供的jar,有些核心的密匙不想被人通过反编译工具查看,那么要怎样才能做到呢?既要能正常调用,又不想别人反编译jar查看源码网上有很多方法,有使用第三方工具的、使...【详细内容】
2022-08-18  Search: JAR  点击:(582)  评论:(0)  加入收藏
Spring Boot独立运行的jar包是如何工作的
Spring Boot使用Spring Boot Gradle Plugin或者Spring Boot Maven Plugin将程序打包成可以独立运行的jar包的。Spring Boot使用Spring Boot Loader通过java -jar来启动jar包...【详细内容】
2022-08-03  Search: JAR  点击:(321)  评论:(0)  加入收藏
记一次SpringBoot启动异常,jar问题的排查分析
小编最近接了个成功的服务端项目,在他们项目中集成了一个WebSocket,嗯,其实不难,有很多成功案例。本文主要来记录一下,...【详细内容】
2022-07-29  Search: JAR  点击:(481)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(2)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(0)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(7)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(2)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(0)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(2)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(15)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(14)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(16)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔&middot;盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(36)  评论:(0)  加入收藏
站内最新
站内热门
站内头条