技术文章

Java为什么要打war包?

war包可以理解为编译过后,直接在web容器中运行的模块,以Tomcat来说,将打包好的war包放入\webapp\下,启动tomcat就会解压war包,相当于发布了该应用程序。那么为什么要将JAVA工程打包成war包,里面有什么东西,war包和jar包有什么区别,下面简单说明:

Java为什么要打war包

一个war包就相当于一个ZIP格式的的压缩文件,里面包含JAVA代码编译成的class文件,依赖的包,配置文件,所有静态资源如:js、html、css、jsp等,一个war包可以理解成web项目里面所有的东西。

JAVA打包的另一种方式jar包是为了让.java文件直接编译成.class文件被jvm跨平台直接运行,当然,jar包里面还包含一些特殊文件,比如:manifects和META-INF,描述符等,用来指示工具如何处理特定的jar。

jar包的主要作用就是别人写好的JAVA文件你只要放入自己的lib目录下,你的程序就可以读取使用,或者使用pom文件直接添加需要的jar包的maven依赖。其实作用一样,就是引入别人的JAVA程序在你的工程中。一个war包可能里面存在多个jar包,是war包的组成部分。

springboot的打包方式jar包也可以直接启动web应用的原因是它里面嵌入了内置的web容器,只要启动springboot的main方法入口,程序就会自动启动toncat或者别的web容器的starter,相当于自我发布服务,所以操作非常方便。