Jar (Java archive), 是將實現了某功能的所有類及輔助資源用ZIP壓縮形式打包而成的一個文件, 便於代碼的管理和重復使用。當使用別人提供的jar時,只需要在classpath環境變量中添加這個jar文件,java虛擬機會自動在內存中解壓這個jar包,把這個jar文件當作一個路徑,在這個路徑中查找所需要的類。
Jar通常包括class文件和META-INF 目錄。META-INF目錄中的MANIFEST.MF文件,是JAR包的描述文件。它包含了JAR文件的內容描述,並在運行時向JVM提供應用程序的信息。META-INF還可以包含Maven的pom文件。
jar包內部結構:

MANIFEST.MF文件簡介
以Manifest-Version屬性開頭 ;每行都是鍵值對,最長72個字符。超過需要續行,下一行以空格開頭,以空格開頭的行都會被視為前一行的續行。每行都以回車結束,否則該行將會被忽略 。使用空行分隔主屬性和package屬性,class 要以.class結尾,package 要以 / 結尾 ,使用"/"而不是點分隔package 和class。
Class-Path管理JAR的依賴包,路徑使用"/"分隔目錄,空格分隔多個包,與平台無關 。
Main-Class:指定程序的入口,用於創建可執行的jar包。

War (web archive),用zip格式壓縮封裝整個web應用,通常一個WAR文件就是一個Web應用程序。包含 Servlet、HTML頁面、JSP頁面、JSP標記庫、JAR庫文件、圖像文件以及組成Web應用程序的其他資源。部署到另一台機器上,只需復制一個war文件放在webapps或者work目錄,tomcat啟動時會自動解壓。
war引用war時會將被引用的war的資源全部拷貝到當前war的相同目錄下,重名文件會被替換。
War包內部結構:
