java打包方式 jar,war,ear

来源:互联网 发布:mac high sierra 更新 编辑:程序博客网 时间:2024/05/17 01:31
jar,war,ear 三种文件都可以看做是java的压缩格式,其实质是实现了不同的封装。所有的包都是用jar(jar.exe)打的,只不过目标文件的扩展名不一样。可以用winRAR打开
1) jar(java Achieve)包:封装类,通常是开发时要引用通用类,打成包便于存放管理。
     由哪些文件组成:按java格式压缩的类包,包含内容 class、properties文件,是文件封装的最小单元。
     由谁处理:应用服务器(application servers)2) war(web Achieve)包:封装web站点,是做好一个web应用后,通常是网站,打成包部署到容器中。
     由哪些文件组成:包含Servlet、JSP页面、JSP标记库、JAR库文件,HTML/XML文档和其他公用资源文件,如图片、音频文件等
     由谁处理:小型服务程序容器(servlet containers)
    【网络服务的容器,通过它,请求和应答被传送,请求被解码,应答被格式化。所有的servlet container必须支持HTTP协议的请求和应答,也可以支持其它的请求应答型协议比如HTTPS。】
3) ear(Enterprise Achieve)包:封装ejb, 企业级应用,通常是EJB打成ear包。EAR文件包括整个项目,内含多个ejb module(jar文件)和web module(war文件)
     由哪些文件组成:除了包含JAR、WAR以外,还包括EJB组件,部署文件 application-client.xml web.xml application.xml 
     由谁处理:EJB容器(EJB containers)
深入理解jar 
jar与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,从而提高存储效率.JAR 文件格式以流行的 ZIP 文件格式为基础,因此可以利用winRAR进行打开,当然也可以利用该命令jar tf jar-file。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。例如MANIFEST.MF文件定义了与扩展和包相关的数据。http://blog.csdn.net/kindazrael/article/details/7603731
简而言之:jar类似于zip的压缩文件,特殊性在于能被编译器和jvm工具使用。
    浏览器中有虚拟机的类加载器会从需要的文件中加载类,类加载器也会分析该类所需要用到的其他类,浏览器会跟web服务器建立其他的链接,来获取每一个类文件。Java支持一种改进的方法来加载类文件,它允许把需要的所有类文件打包成一个文件,然后向服务器发出一个HTTP请求,就可以加载该文件 -- jar。 Jar文件可以把应用程序,程序组件(javabean)和代码库,和其他资源文件打包到jar文件中,jar文件是一种简单的zip文件(除了类文件等,还包括描述存档特性的清单文件manifest),有助于减少下载时间。[本段内容参考自java核心技术]
    rt.jar文件存储了JDK的运行库