从最终客户的角度来看,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、 作用与区别

     i. jar:通常是开发时要引用通用(JAVA)类,打成包便于存放管理;

     ii. war:是做好一个(web)应用后,通常是网站,打成包部署到容器中;

    iii. ear: 企业级应用,实际上EAR包中包含WAR包和几个企业级项目的配置文件而已,一般服务器选择WebSphere等,都会使用EAR包。通常是EJB打成ear包。

 

      Linux系统下最常用的打包程序是tar,使用tar程序打出来的包称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其他的程序来进行压缩了。

      tar可以为文件和目录创建备份。利用tar,用户可以为某一特定文件创建备份,也可以在备份中改变文件,或者向备份中加入新的文件。 tar最初被用来在磁带上创建备份,现在,用户可以在任何设备上创建备份,如软盘。利用tar命令可以把一大堆的文件和目录打包成一个文件,这对于备份文件或将几个文件组合成为一个文件进行网络传输是非常有用的。 

      tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的,并且使用的压缩算法是GNU ZIP,而xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。简单地说,tar就仅是打包。


       类图:

Java中 tar包 war包 jar包之间的区别 tar和jar的区别_Arc