基于Java的打包jar、war、ear包的作用与区别详解
以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于J2EE来说还有war和ear。
对照表
jar
war
ear
英文名字
Java Archive file
Web Archive file
Enterprise Archive file
包含内容
class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等
Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等
除了包含JAR、WAR以外,还包括EJB组件
部署文件
application-client.xml
web.xml
application.xml
容器
应用服务器(application servers)
小型服务程序容器(servlet containers)
EJB容器(EJB containers)
级别
小
中
大
1.jar.war.ear包的作用和区别
i. jar:通常是开发时要引用通用(JAVA)类,打成包便于存放管理;
ii. war:是做好一个(web)应用后,通常是网站,打成包部署到容器中;
iii. ear:企业级应用,实际上EAR包中包含WAR包和几个企业级项目的配置文件而已,一般服务器选择WebSphere等,都会使用EAR包。通常是EJB打成ear包。
2.何时使用war或者jar文件
i当你的项目在没有完全竣工的时候,不适合使用war文件,因为你的类会由于调试之类的经常改,这样来回删除、创建war文件很不爽,最好是你的项目已经完成了,不改了,那么就打个war包吧,这个时候一个war文件就相当于一个web应用程序;而jar文件就是把类和一些相关的资源封装到一个包中,便于程序中引用。
ps:war包和jar包都是使用jar命令打包的。