以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果。java中除了jar格式还有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、EAR文件的打包

EAR文件包括整个JSP项目,内含多个 EJB Module(JAR文件)和 Web Module(WAR文件)。

EAR文件的生成可以使用winrar(windows平台上的软件)以zip压缩方式或者从命令行以jar命令来生成。

典型的ear包内部结构如下:
app.ear
   |   ejb.jar                         // ejb-jar包
   |   other.jar                     // 普通的jar包
   |   webapp.war              // war包
   |
   |—META-INF
          application.xml        // EAR描述文件

常用案例:

创建EAR工程 => 创建WAR工程并放入EAR => 将EAR部署到WAS

操作步骤:

1)先打包成war和jar,并写好application.xml,放到 META-INF 目录下。

2)打包命令:(进入文件所在目录)

jar cf application.ear application.war application.jar META-INF\application.xml

注意:application.xml是用来描述ear中包括的war和jar等包文件

3)解包命令:

jar xf application.ear -C 目标路径

weblogic自带的petstore的application.xml例子:

<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>estore</display-name>
<description>Application description</description>
<module>
<ejb>customerEjb.jar</ejb>
</module>
<module>
<ejb>mailerEjb.jar</ejb>
</module>
<module>
<web>
<web-uri>petstore.war</web-uri>
<context-root>estore</context-root>
</web>
</module>
<module>
<ejb>petstoreEjb.jar</ejb>
</module>
<module>
<ejb>signonEjb.jar</ejb>
</module>
<module>
<ejb>personalizationEjb.jar</ejb>
</module>
<module>
<ejb>inventoryEjb.jar</ejb>
</module>
<module>
<ejb>shoppingcartEjb.jar</ejb>
</module>
<security-role>
<description>the gold customer role</description>
<role-name>gold_customer</role-name>
</security-role>
<security-role>
<description>the customer role</description>
<role-name>customer</role-name>
</security-role>
<security-role>
<role-name>administrator</role-name>
</security-role>
</application>

2、WAR的使用

1)生成war包文件命令:

jar -cvf web.war 被打包文件

或者:用eclipse工具,点击项目,并右击,选择“export”,在弹出的对话框中选择“WAR”格式,最后选择路径,并导出,把生成的war文件直接放在tomcat的webapps目录下就可以,启动tomcat,它会自动解压,启动完成就可以访问了。

2)查看war包内容命令:

jar -tf web.war

3)解压war包文件命令:

jar -xf web.war

也可使用winrar软件选择zip压缩方式,并将压缩文件后缀名改为war即可压缩生成war文件。同样使用winrar软件可以打开war 文件,或者解压war文件。

使用jar命令与winrar软件的区别在于前者在压缩文件的同时会生成 META-INF 文件夹,内包含MANIFEST.MF文件。

3、何时使用war或者jar文件

在项目在没有完全开发完成时,不适合使用war文件,因为你的类会由于调试之类的经常被修改,来回创建war包很麻烦。当项目完全开发完成后续无需修改时,可以创建war包。这个时候war包文件就相当于一个web应用程序;而jar文件就是把类和一些相关的资源封装到一个包中,便于程序中引用。

典型的war包内部结构如下:
webapp.war
  |    index.jsp
  |
  |— images
  |— META-INF
  |— WEB-INF
          |   web.xml                   // WAR包的描述文件
          |
          |— classes
          |          action.class       // java类文件
          |
          |— lib
                    other.jar             // 依赖的jar包
                    share.jar

典型的jar包内部结构如下:
tools.jar
  |  resource.xml                    // 资源配置文件
  |  other.xml
  | 
  |— META-INF           
  |            MANIFEST.MF         // jar包的描述文件
  |— com                                 // 类的包目录
         |—test

util.class              //java类文件

4、jar/war/ear包文件的作用与区别:

4.1、 作用与区别

1) jar: 把开发时要引用通用(JAVA)类及资源做封装,打成包后便于存放管理;

2) war:一个(web)完整的应用,通常是网站或WEB平台,打成包部署到容器中;

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

4.2、打包方式

1) 所有的包都是用jar命令制作,只不过目标文件的扩展名不一样。

2) 也可以用Ant来构建。

3) Windows平台winrar命令。

4.3、JET编译成EXE

1)  JET 是要用钱买的,据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性。

Jar/War/Ear等包的作用与区别详解的更多相关文章

  1. 基于Java的打包jar、war、ear包的作用与区别详解

      本篇文章,小编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下   以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.cla ...

  2. ava的打包jar、war、ear包的作用、区别、打包方式

    编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的 ...

  3. java打包jar,war,ear包的作用、区别

    java的打包jar,war,ear包的作用,区别,打包方式. a) 作用与区别      i.    jar: 通常是开发时要引用通用(JAVA)类,打成包便于存放管理      ii.   war ...

  4. jar命令+7z:创建,替换,修改,删除Jar, war, ear包中的文件

    虽然现在已经有各种智能的IDE可以为我们生成jar包,war包,ear包,甚至带上了自动替换,部署的功能.但一定会有那么些时候,你需要修改或是替换jar包,war包,ear包中的某个文件而不是整个重新 ...

  5. JAR,WAR,EAR的使用与区别

    WAR(Web Archive file)网络应用程序文件   是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文 ...

  6. jar/war/ear文件的区别

     jar/war/ear三种文件,在文件结构上,三者并没有什么不同,它们都采用zip或jar档案文件压缩格式.但是它们的使用目的有所区别: Jar文件(扩展名为. Jar)包含Java类的普通库.资源 ...

  7. jar,war,ear区别及java基础杂七八

    jar,war,earqu区别 这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装: jar--封装类war--封装web站点ear--封装ejb.它们的关系具体为:jar:      ...

  8. Fiddler抓包6-get请求(url详解)

    前言 上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行.有些get请求会带有参数,本篇详细介绍url地址格式. 一. ...

  9. Fiddler抓包6-get请求(url详解)【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 上一篇介绍了Composer的功能,可以模拟get和post请求 ...

随机推荐

  1. JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代

    内存模型 JVM运行时数据区由程序计数器.堆.虚拟机栈.本地方法栈.方法区部分组成,结构图如下所示. JVM内存结构由程序计数器.堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)程序计数器 ...

  2. linux limits.conf 配置

    转自:http://kerry.blog.51cto.com/172631/300784 limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentic ...

  3. java 时间戳和PHP时间戳 的转换[10位和13位]

    2013-08-02 14:06 9826人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结一下java 时间戳和PHP时间戳 的转换问题:  由于精度不同,导 ...

  4. 6款国内、国外开源PHP轻论坛CMS程序

    随着移动互联网对于传统互联网的冲击,用户群更加注重信息的及时性和有效性的简便分享和获取,传统的社区模式经过多年的积累沉淀很深,尤其对于新兴的社区用户群和站长来说,如果需要挑战目前已经非常成熟的社区群还 ...

  5. WinForm如何调用Web Service

    参考地址 今天看了李天平关于WinForm调用Web Service的代码,我自己模仿做一个代码基本都是复制粘贴的,结果不好使.郁闷的是,又碰到那个该死的GET调用Web Service,我想肯定又是 ...

  6. spring注解 di 和 ioc 注解

    注解: 1.注解就是为了说明java中的某一个部分的作用(Type) 2.注解都可以用于哪个部门是@Target注解起的作用 3.注解可以标注在ElementType枚举类所指定的位置上 4. @Do ...

  7. Centos5 下redmine的安装及配置

    Redmine: 这是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和 DotProject的功能大致相当外,还有 ...

  8. HDUOJ----Eddy's research I

    Eddy's research I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  9. 使用Apache FtpServer

    Java大法一统天下.遇到任何问题,先查一下Java中的解决方案. 地球上的许多事情,在Java中都能找到完美的解决方案. FtpServer是apache MINA项目的一个子项目,它实现了一个ft ...

  10. Microsoft Excel不能访问文件

    Microsoft Excel 不能访问文件"C:\Users\james\Documents\test.xls". 可能的原因有以下几个: • 文件名称或路径不存在. • 文件正 ...