在文件结构上,三者并没有什么不同,它们都采用zip或jar档案文件压缩格式,但是它们的使用目的有所区别。
Jar文件(扩展名为. Jar)包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等
JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。
一般通过jar命令进行打包,如果通过winrar等工具打包,包中不会生成META-INF目录。
War文件(扩展名为.War)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。
打war包也是通过jar命令操作,打包后同样会生成META-INF/MANIFEST.MF文件。
如果打算将应用打成war包后做web应用发布,那么包内的内容必须符合web应用的目录结构。
Ear文件(扩展名为.Ear)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。
每一种文件(.jar, .war, .ear)只能由应用服务器(application servers)、小型服务程序容器(servlet containers)、EJB容器(EJB containers)等进行处理。
EAR文件包括整个项目,内含多个ejb module(jar文件)和web module(war文件)
EAR文件的生成可以使用winrar zip压缩方式或者jar命令。
jar:封装类
war:封装web站点
ear:可以封装ejb