以客戶角度來看,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命令來生成。
操作步驟:
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 被打包文件
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文件就是把類和一些相關的資源封裝到一個包中,便於程序中引用。
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 的跨平台特性。
注意:代碼上線時將web項目以war的方式導出后,直接放在tomcat容器的webapps下 ,啟動服務,即可運行該項目,該war包會自動解壓出一個同名的文件夾。