jar包和war包区别及理解

jar包和war包区别及理解在开发阶段不适合使用war包,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新Servlet类文件,而每一次改动后,重新建立war包将是一件浪费时间的事情。在产品发布阶段,使用war文件比较合适的,因为在这个时候,几乎不需要再做什么改动了。jar包jar是类的归档文件JAR(JavaArchive,Java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为J2EE应用程序创建的jar文件是EAR文件(企业jar文件),jar文件格式以流行的ZIP文

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述
在开发阶段不适合使用war包,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立war包将是一件浪费时间的事情。在产品发布阶段,使用war文件比较合适的,因为在这个时候,几乎不需要再做什么改动了。

jar包

jar是类的归档文件
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J2EE 应用程序创建的jar文件是 EAR 文件(企业 jar文件),jar文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 jar中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 jar。
通常是开发时要引用通用类,打成jar包便于存放管理,当你使用某些功能时就需要这些jar包的支持,需要导入jar包。
jar包就是java的类进行编译生成的class文件打包的压缩包,包里面就是一些class文件。当我们自己使用Maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该JAR包也要导入。
在这里插入图片描述


war包

war包是一个Web应用程序
一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时,可以使用WinRAR查看war包,直接将后缀.war改成.rar。
在这里插入图片描述

Web存档(war)文件包含Web应用程序的所有内容。它减少了传输文件所需要的时间。


jar包和war包区别

jar是java普通项目打包,通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包。war是java web项目打包,web网站完成后,打成war包部署到服务器,目的是为了节省资源,提供效率。

jar文件(扩展名为. Jar,Java Application Archive)包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等。通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

war文件(扩展名为.War,Web Application Archive)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。 war包是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

Ear文件(扩展名为.Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。

SpringBoot项目既可以打成war包发布,也可以找成jar包发布。
jar包:直接通过内置Tomcat运行,不需要额外安装Tomcat。如需修改内置Tomcat的配置,只需要在SpringBoot的配置文件中配置。内置Tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。
war包:传统的应用交付方式,需要安装Tomcat,然后放到wabapps目录下运行war包,可以灵活选择Tomcat版本,可以直接修改Tomcat的配置,有自己的Tomcat日志输出,可以灵活配置安全策略,相对打成jar包来说没那么快速方便。


END

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142106.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下wait, WIFEXITED, WEXITSTATUS的比较

    Linux下wait, WIFEXITED, WEXITSTATUS的比较偶尔翻到了这几个关键字,找到个文章复习了下:“点我”。记录下:wait的函数原型是:#include/*提供类型pid_t的定义*/#includepid_twait(int*status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已

    2022年4月20日
    170
  • java线程池参数详解

    java线程池参数详解java线程池参数详解核心线程数corePoolSize最大线程数maximumPoolSize空闲线程存活时间及单位keepAliveTime、unit工作队列新任务被提交后,会先进入到此工作队列中,任务调度时再从队列中取出任务。jdk中提供了四种工作队列:①ArrayBlockingQueue基于数组的有限阻塞队列,按照FIFO排序。新任务进来后,会放到该队列队尾线程工厂创建一个新线程时使用的工厂,可以用来设定线程名,是否为daemon守护线程等等。拒绝策略…

    2022年6月28日
    31
  • 银行家算法

    银行家算法

    2021年12月30日
    38
  • 阿里巴巴Java开发手册.pdf (详尽版 和 终极版)

    阿里巴巴Java开发手册.pdf (详尽版 和 终极版)阿里巴巴Java开发手册已经是国内Java编码的行业规范笔者特意提供了阿里巴巴Java开发手册(详尽版).pdf阿里巴巴开发手册终极版2019.pdf扫描下面的二维码或搜索公众号【技术杂谈】点击关注并回复【Java开发手册】即可获取下载链接…

    2022年7月7日
    64
  • 有哪些优化mysql索引的方式请举例(sqlserver索引优化)

    目录0存储引擎介绍1SQL性能分析2常见通用的JOIN查询SQL执行加载顺序七种JOIN写法3索引介绍3.1索引是什么3.2索引优劣势3.3索引分类和建索引命令语句3.4索引结构与检索原理3.5哪些情况适合建索引3.6哪些情况不适合建索引4性能分析4.1性能分析前提知识4.2Explain使用简介4.3执行计划包含的信息字段解释(重中之重)id(表的读取顺序)select_type(数据读取操作的操作类型)table(显示执行的表名)type(访问类型排列)possible_k

    2022年4月10日
    70
  • Asp.Net MVC模型验证正则表达式[通俗易懂]

    Asp.Net MVC模型验证正则表达式[通俗易懂][RegularExpression(@”^\+?[1-9][0-9]*$”,ErrorMessage=”排序内容必须为不小于1的正整数”)][Display(Name=”排序”)]publicoverrideNullable<int>OrderNum{get;set;}参考地址mvc模型验证及正则表达式如何在MVC3正则表达式中为NOTNULL或ZERO提供数据注释验证模型验证表达式可叠加[NotNullExpression]//非空[Regula

    2022年7月22日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号