以客户角度来看,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. KnockoutJS + My97DatePicker

    如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...

  2. Redis学习(7)-通用命令

    keys pattern: 获取所有与pattern匹配的key,返回所有与该key匹配的keys. 通配符: *表示任意一个或多个字符串. ?表示一个字符. 例如: 查询所有的key:keys * ...

  3. 【mysql】Innodb三大特性之insert buffer

    一.什么是insert buffer insert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,当受影响的索引页不在buffer pool时缓存 secondar ...

  4. 【mysql】Innodb三大特性之adaptive hash index

    1.Adaptive Hash Indexes 定义 If a table fits almost entirely in main memory, the fastest way to perfor ...

  5. Linux下PHP5.5编译参数详解

    一.配置参数 ./configure --prefix=/data/app/php --with-config-file-path=/etc --with-mysql=/usr\ --with-mys ...

  6. iOS获取手机型号,Swift获取手机型号(类似iphone 7这种,检测机型具体型号)

    获取手机设备信息,如name.model.version等, 但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种(含Swift和OC两种写法) Swift建议添加到extensio ...

  7. python练习笔记——丑数的计算

    只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数.——摘自百度百科 get_num = int(input("请您输入丑数的 ...

  8. 简单的WPS二次开发脚本

    详细信息见:http://bbs.wps.cn/thread-22427301-1-1.html 下载:WPS2013专业版:WPS2013Pro_normal.exe 调用脚本(xl.vbs)内容如 ...

  9. socket概述和字节序、地址转换函数

    一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口. socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网 ...

  10. Android仿联系人列表分组悬浮列表实现,自己定义PinnedHeaderListView实现

    效果 (关于gif怎么生成的.我先录手机的屏幕得到mp4文件.然后用这个网址:https://cloudconvert.com/mp4-to-gif 进行的mp4转换gif,使用的时候须要又一次选择g ...