什么是 jar 包
jar 包全称 Java Archive ,中文名叫 java 归档文件,这是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件(是的,jar 包就是一种压缩文件,甚至 jar 这个单词就有罐子的意思,实际上 jar 包采用的也是 zip 的压缩方式,只不过将文件后缀定义为 jar)。javaSE 程序可以打包成 jar 包。

jar 包虽然使用 zip 进行压缩和发布,但与 zip 压缩不同,jar 文件还可以用来部署和封装库,组件和插件程序,而且这样的 jar 包是可以直接被编译器和 JVM 直接使用的。

简单的讲,zip 只是将代码文件压缩,打 jar 包不仅是文件压缩,还将代码中的类进行打包,这样就可以让别人直接进行引入调用了。

什么是 war 包
war 包与 jar 包是很类似的,不过 war 包通常用于网站,它是一个可以直接运行的 web 模块。我们在开发 web 项目一般都会使用一个 webapp 文件夹来进行开发,这个文件夹直接放在 Tomcat 的 webapps 文件夹下就可以启动该项目了。而 war 包,就是对这个文件夹进行打包。

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 目录下。

区别
使用 jar 文件的目的是把类和相关的资源封装到压缩的归档文件中以方便调用。而对于 war 文件来说,一个 war 文件就是一个 Web 应用程序。它包含 Servlet、HTML 页面、Java 类、图像文件,以及组成 Web 应用程序的其他资源,而不仅仅是类的归档文件。

简单的来说,jar 只是类的归档文件,而 war 包是一个完整的 web 应用程序。

如何打 war 包
war 包的打包也是通过 jar 命令来实现的。使用如下命令即可打包

​jar cvf d:/test/myweb2.war.​

其中​cvf​是命令参数,表示生成一个文档、显示生成过程、指定生成的文件名。
​d:/test/myweb2.war​ 为生成的文档的存放路径以及文件名。
最后一个点号表示要将当前目录中所有内容打包。
使用一些开发工具也可以打 war 包,比如 maven 项目就可以用 maven 打包。如果项目中用到了 ant,也可以用 ant 进行 war 包的输出和部署。类似的工具还有 gradle 等等,小编就不一一介绍了。

使用 IDE 一般都会提供打包工具,它们可以简单的打好一个 war 包(关注 W3C技术头条,后续文章教你如何用 idea 和 eclipse 打 war 包)。

war 包怎么部署
war 包的部署是相当简单的,只需要将 war 包放在 Tomcat 的 webapps 文件夹中,启动 Tomcat,它就会自行解包运行相应的 web 项目。

小结
如果仅仅只是为了在本地运行一个 webapp 项目,使用 war 包好像是看不出有什么优势,反而每次运行都要打包显得更麻烦了。但如果是要将项目部署在远程的服务器上,传输一个 war 包和传输一个文件夹的区别就显现出来了,所以学习使用 war 包对于日后从事 web 项目开发是有一定必要性的。

【java】什么是war包?war包该怎么运行?相关推荐

  1. java ear war_[转] 基于Java的打包jar、war、ear包的作用与区别详解

    以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果.除jar以外对于J2EE来说还有war和ear.区 ...

  2. java 打成war_JAVA语言之Springboot打成war包并在tomcat中运行的部署方法

    本文主要向大家介绍了JAVA语言的Springboot打成war包并在tomcat中运行的部署方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 把spring-boot项目按照平常 ...

  3. java 代码混淆 class字符串加密 jar包war包加密 支持JDK16

    1.功能介绍 Java文件是目前最流行的开发语言,因采用对象模式很容易进行整合复用大规模项目开发.但是目前因反编译严重,各行业由java开发的系统很容易本反编译,模仿借鉴,核心代码很容易被盗用. 特别 ...

  4. java如何将war包打成ear包_关于war包 jar包 ear包 及打包方法

    关于war包 jar包 ear包 及打包方法 war包:是做好一个web应用后,通常是网站打成包部署到容器中 jar包:通常是开发的时候要引用的通用类,打成包便于存放管理. ear包:企业级应用 通常 ...

  5. java ear war_基于Java的打包jar、war、ear包的作用与区别详解

    基于Java的打包jar.war.ear包的作用与区别详解 以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希 ...

  6. Jar/War/Ear等包的作用与区别详解

    Jar/War/Ear等包的作用与区别详解 以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果.ja ...

  7. war,jar包是啥

    http://www.blogjava.net/athrunwang/archive/2011/11/18/364191.html 经常听开发说war,jar,car,这些是个什么东东呢? .jar  ...

  8. 2.1依赖概念之前的预备--war、jar包内部结构

    java是软件发展的产物,其粒度远远超过了汇编.c等,从面向过程到面向对象,粒度增大,软件进入了构建了层次,当然仍然可以使用面向过程的语言那样抽象出编程模型即输入.处理.输出,概念上下文等,了解它的本 ...

  9. jenkins 自动化远程部署——部署war包,jar包的bat命令

    目录 1. 部署war包bat @rem 停止在运行的tomact D: cd D:\Program Files\apache-tomcat\bin call shutdown.battitle my ...

  10. eclipse打war包_jar包和war包的区别

    一.概念 jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础.与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库.组件和插件程序,并可被像 ...

最新文章

  1. linux c setuid函数解析
  2. ActiveMQ安装笔记
  3. python元组类型_Python数据类型之元组
  4. 让HTML标签title属性值换行
  5. MYSQL 碎片查询
  6. 关于Linux下载工具
  7. 大学生签到系统理论模型2.0
  8. c语言程序设计教程实验指导吴国栋,C语言程序设计教程实验指导
  9. 1G、2G、3G、4G和5G有什么区别?5G的原理是什么?
  10. 阿里天池比赛——街景字符编码识别
  11. 基于拉丁超立方抽样的风,光,负荷场景生成方法 风电功率场景生成 ,光伏功率场景生成,负荷场景生成
  12. 无法启用网络发现的解决方法
  13. python123app_Python实现iOS APP 自动化打包
  14. 163888一个普通程序员写给COO李大学的一封Mail(不是转载)
  15. SMBIOS读取本机的MEMORY信息
  16. 高等数学学习笔记——综合练习——定积分性质与微积分基本定理(1)
  17. 移动端上(传图片太大)处理方案
  18. 【路径规划】基于粒子群算法求解VRPTW模型
  19. 【CF1389】E. Calendar Ambiguity(数论)
  20. 【GNN】可视化详解图卷积和消息传递理论

热门文章

  1. 国外问卷调查得益于什么?
  2. Google Earth Engine(GEE)——MODIS NDVI 时空动态变化的动态图下载案例
  3. html5 java web开发工具_HTML5 WYSIWYG Editor:Aloha Editor
  4. strncat()函数用法及其详解
  5. 拆装微型计算机的心得体会,微机心得体会_
  6. 2022-2028全球汽车内部连接器行业调研及趋势分析报告
  7. Java hook qpi_*信bA0 6.1.1 hook
  8. Anaconda在控制台无法创建新环境
  9. 手机端AP和BP的含义
  10. 2023年计算机考研英语一题型及分值参考