一、jar简介

JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JavaSE程序可以打包成Jar包(J其实可以理解为Java了)。

JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装组件插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

二、war简介

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

简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

三、jar包和war包的区别介绍

1. 文件扩展名不同

jar包扩展名为.jar,war包扩展名为.war。
 

2. 目的和运作方式不同

jar包是类的归档文件,jar文件格式以流行的zip文件格式为基础。jar文件允许我们打包多个文件,以便将其用作库、插件或任何类型的应用程序。

war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为一个web项目,里面是项目的所有东西。
 

3. 文件的结构不同

jar包里的com里放的就是class文件,配置文件,但是没有静态资源的文件,大多数 JAR 文件包含一个META-INF目录,它用于存储包和扩展的配置数据,如安全性和版本信息。

war包和项目的文件结构保持一致。war包里的WEB-INF里放的class文件和配置文件,META-INF和jar包作用一样,war包里还包含静态资源的文件。

四、启动jar包和war包

1. 窗口方式启动jar或war

  缺点:关闭窗口,项目也被关闭

java -jar rest-template-0.0.1-SNAPSHOT.jar

jar与springboot内置冲突 springboot的jar包和war包区别_区别

2. 后台启动jar或war

  后台启动java包

# 进入jar包目录输入下面命令
# xxx.jar是你的jar包名 
# /mydata/logs/spring.log是项目日志路径
nohup java -jar xxx.jar >/mydata/logs/spring.log 2>&1 &

  查看jar包进程

ps -ef|grep xxx.jar

  关闭进程

kill -9 进程id

3. tomcat启动