1. 程式人生 > >JAR、WAR、EAR的使用和區別

JAR、WAR、EAR的使用和區別

       最近接觸這幾個詞較多,停下來總結總結它們的區別和聯絡,更好的深刻理解

       Jar、war、EAR、在檔案結構上,三者並沒有什麼不同,它們都採用zip或jar檔案檔案壓縮格式。但是它們的使用目的有所區別:

  Jar檔案(副檔名為. Jar,Java Application Archive)包含Java類的普通庫、資源(resources)、輔助檔案(auxiliary files)等

  War檔案(副檔名為.War,Web Application Archive)包含全部Web應用程式。在這種情形下,一個Web應用程式被定義為單獨的一組檔案、類和資源,使用者可以對jar檔案進行封裝,並把它作為小型服務程式(servlet)來訪問。

  Ear檔案(副檔名為.Ear,Enterprise Application Archive)包含全部企業應用程式。在這種情形下,一個企業應用程式被定義為多個jar檔案、資源、類和Web應用程式的集合。

  每一種檔案(.jar, .war, .ear)只能由應用伺服器(application servers)、小型服務程式容器(servlet containers)、EJB容器(EJB containers)等進行處理。

EAR檔案包括整個專案,內含多個ejb module(jar檔案)和web module(war檔案)

         EAR檔案的生成可以使用winrar zip壓縮方式或者jar命令。

步驟:

        先打包成war和jar,並寫好application.xml,放到META-INF目錄下,然後 jar   cf   your_application.ear   your_war.war   your_jar.jar   META-INF/application.xml,   打包,我這假設都在當前目錄下     可以用    jar   xf   your_application.ear解壓  
 

application.xml中描述你的ear中包括的war和jar (上篇文章已經提到)
 

jboss中  的application.xml例子

<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
	"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
	"http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>lishehetestear</display-name>
  <module>
    <java>lishehe_api-0.0.1-SNAPSHOT.jar</java>
  </module>
  <module>
    <java>lishehe_core-0.0.1-SNAPSHOT.jar</java>
  </module>
  <module>
    <web>
      <web-uri>lishehe_war-0.0.1-SNAPSHOT.war</web-uri>
      <context-root>/lishehe_war</context-root>
    </web>
  </module>
</application></span></span>

WAR的使用:

如果想生成war檔案:可以使用如下命令:jar -cvf web1.war *

如果想檢視web1.war中都有哪些檔案,可以使用命令:jar -tf web1.war

如果想直接解壓web1.war檔案,可以使用命令:jar -xvf web1.war

另外,也可使用winrar軟體選擇zip壓縮方式,並將壓縮檔案字尾名改為war即可壓縮生成war檔案;同樣使用winrar軟體可以強行開啟war檔案,或者強行解壓war檔案

使用jar命令與winrar軟體的區別在於前者在壓縮檔案的同時會生成MetaINF資料夾,內包含MANIFEST.MF檔案。

總結:

         何時使用war或者jar檔案:當你的專案在沒有完全竣工的時候,不適合使用war檔案,因為你的類會由於除錯之類的經常改,這樣來回刪除、建立war檔案很不爽,最好是你的專案已經完成了,不改了,那麼就打個war包吧,這個時候一個war檔案就相當於一個web應用程式鳥;而jar檔案就是把類和一些相關的資源封裝到一個包中,便於程式中引用。

相關推薦

jarwarear包的作用區別

在開發中,我們常常看到jar包,war包和ear,那麼這三種究竟有什麼區別和聯絡呢?我們來看一下。 1.jar包   Java Archive。   包含:class、properties檔案,是檔案

JARWAREAR的使用區別

       最近接觸這幾個詞較多,停下來總結總結它們的區別和聯絡,更好的深刻理解        Jar、war、EAR、在檔案結構上,三者並沒有什麼不同,它們都採用zip或jar檔案檔案壓縮格式。

基於Java的打包jarwarear包的作用與區別詳解

以最終客戶的角度來看,JAR檔案就是一種封裝,他們不需要知道jar檔案中有多少個.class檔案,每個檔案中的功能與作用,同樣可以得到他們希望的結果。除jar以外對於J2EE來說還有war和ear。區別見下表: JAR WAR EAR 英文 Java Archive fi

Java web的三種打包方式:jarwarear

  以最終客戶的角度來看,JAR檔案就是一種封裝,他們不需要知道jar檔案中有多少個.class檔案,每個檔案中的功能與作用,同樣可以得到他們希望的結果。除jar以外對於J2EE來說還有war和ear。區別見下表: JAR WAR EAR 英文 Java Ar

maven中jarwarpom的區別

一、maven的三種packaging方式 pom是maven依賴檔案 jar是java普通專案打包 war是java web專案打包 pom:打出來可以作為其他專案的maven依賴,在工程A中新增工程B的pom,A就可以使用B中的類。用在父級工程或聚合工程中。用來做jar包的版本控制。 jar包:通常是開

jsonjsonp的定義區別

雙引號 對象 parse 但是 用戶 必須 cal llb jsonp 一、區別   簡單來說,json是一種數據交換格式,jsonp是一種非官方跨域數據交互協議。json描述的是信息的格式,而jsonp是信息傳遞雙方約定的方法。json返回的是一串數據,而 jsonp返回

CSS之pxemrempt的用法區別

分辨 計算機系統 字符 css dpi logs pre 國外 12px px:一個虛擬長度單位,是計算機系統的數字化圖像長度單位,換算成物理長度,需要制定經度DPI。Windows系統默認是96dpi,Apple系統默認是72dpi。 一個相對長度單位,像素px是相對

Jquery中html()text()val()的使用區別

center () .text div 使用 avi innerhtml mar font jquery中獲取對象內容的方法主要有3種,分別是html()、text()、val()。 obj.html():獲取對象包裹的所有html內容,相當於innerHTML。

JDKJREJVM的聯絡區別

JDK(Java Development Kit )(Java開發工具) JDK,是整個JAVA的核心,包括了Java執行環境(JRE),JAVA工具(JAVAC/JAVA/JDB等)和JAVA基礎類庫(即JAVA API 包括 rt.jar)。 Java工具 ◆ Javac:Java編譯器

threadPoolExecutor 中的 shutdown() shutdownNow() awaitTermination() 的用法區別

文章目錄 shutdown() shutdownNow() awaitTermination(long timeOut, TimeUnit unit) shutdown()和shutdownNow()的區別 shutdown

==equals()hashcode()的關係區別

==、equals()、hashcode()概念 ==:它的作用是判斷兩個物件的地址是不是相等。即,判斷兩個物件是不試同一個物件。 equals():它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況:   情況1,類沒有覆蓋equals()方法。則通過equals()比較該類的兩個物件時,等價於

Java基礎——StringStringBuilerStringBuffer的用法區別

1.區別 1.1 三者本質區別 String:每次增加資料都會開闢新空間,儲存資料,將上一塊空間通過GC進行回收 StringBuiler、StringBuffer:是可變長度,資料增加是直接在現有空間進行操作 1.2 StringBuiler StringBuffer

c/c++中sizeof()strlen()length()size()詳解區別

c/c++中獲取字串長度。有以下函式:size()、sizeof() 、strlen()、str.length();一、陣列或字串的長度:sizeof()、strlen() 1、sizeof():返回所佔總空間的位元組數 (1)、對於整型字元型陣列 (2)、對於整型或字元型指

locationrootalias指令用法區別

nginx配置靜態檔案路徑有兩種方式root和alias,指令的使用方法和作用域: root 語法:root path 預設值:root html 配置區域:http、server、location、if alias 語法:alias path 配置段:location 區別

ActionBarTitleBarToolBar的聯絡區別

一、ToolBar 1、概述 Google在2015的IO大會上釋出了系列的Material Design風格的控制元件。其中ToolBar是替代ActionBar的控制元件。由於ActionBar在各個安卓版本和定製Rom中的效果表現不一,導致嚴重的碎片化問題,T

架構,框架,模式,模組元件外掛的含義區別

架構、框架、模式、模組、元件、外掛、控制元件、中介軟體的含義和區別。經常看到這些概念,但是有些含糊,花點兒功夫整理一下,結果還是有些地方理解的不透徹,先將整理的內容寫下來,以供交流。左側英文欄中有些單詞被分成了兩半,放到了兩行中,看的時候需要注意。歡迎各路大蝦、大牛、大神

java中thissuperthis()super()的用法區別

this關鍵字:一.this是什麼?this是一個引用型別,在堆中的每一個java物件上都有this,this儲存記憶體地址指向自身。二.this及this()能用在哪些地方?this可以用在成員方法中.this()可以用在構造方法中.語法: this(實參);通過一個構造方

模組元件的定義區別

相關概念: 包(package):可重用的程式碼,有時也可稱為模組(一個目錄、一個資料夾、一個或多個檔案)。 模組(module):整個系統中一些相對對獨立的程式單元,每個程式單元完成和實現一個相對獨立的軟體功能。解決相關業務功能問題,通常由一個或多個包/元件構成。 元件(Component)是對資料和方法的

jdk環境變數的配置及pathclasspath的作用區別

    個人覺得像jdk、tomcat等等這些下載解壓版是不錯的選擇!(當然,jdk在Oracle官網是沒提供解壓版的)理論上下載了jdk之後,一個變數都不需要配置,只不過為了命令列敲起來方便,所以通常

什麼是MbpsKbpsbpskbmb及其換算區別

Mbps 即 Milionbit pro second(百萬位每秒); Kbps 即 Kilobit pro second(千位每秒); bps 即 bit pro second(位每秒); 速度單位,bit即位元,通常用b(小寫)表示,指一位二進位制位,Milio