jar包和war包的介紹
JavaSE程序可以打包成Jar包(J其實可以理解為Java了),而JavaWeb程序可以打包成war包(w其實可以理解為Web了)。然后把war發布到Tomcat的webapps目錄下,Tomcat會在啟動時自動解壓war包。
JAR(Java Achive,Java歸檔文件)是與平台無關的文件格式,它允許將許多文件組合成一個壓縮文件。為J2EE應用程序創建的JAR文件是EAR文件(企業JAR文件)。
JAR文件格式以流行的ZIP文件格式為基礎。與ZIP文件不同的是,JAR文件不僅用於壓縮和發布,而且還用於部署和封裝庫、組件和插件程序,並可被像編譯器和JVM這樣的工具直接使用。在JAR中包含特殊的文件,如manifests和部署描述符,用來指示工具如何處理特定的JAR。
如果一個Web應用程序的目錄和文件非常多,那么將這個Web應用程序部署到另一台機器上,就不是很方便了,我們可以將Web應用程序打包成Web歸檔(WAR)文件,這個過程和把Java類文件打包成JAR文件的過程類似。利用WAR文件,可以把Servlet類文件和相關的資源集中在一起進行發布。在這個過程中,Web應用程序就不是按照目錄層次結構來進行部署了,而是把WAR文件作為部署單元來使用。
一個WAR文件就是一個Web應用程序,建立WAR文件,就是把整個Web應用程序(不包括Web應用程序層次結構的根目錄)壓縮起來,指定一個.war擴展名。
jar包和war包的區別
要注意的是,雖然WAR文件和JAR文件的文件格式是一樣的,並且都是使用jar命令來創建,但就其應用來說,WAR文件和JAR文件是有根本區別的。JAR文件的目的是把類和箱規的資源封裝到壓縮的歸檔文件中,而對於WAR文件來說,一個WAR文件代表了一個Web應用程序,它可以包含Servlet、HTME頁面、Java類、圖像文件,以及組成Web應用程序的其他資源,而不僅僅是類的歸檔文件。
jar包中至少用java來寫的項目打包來的,里面只有編譯后的class和一些部署文件。而war包里面的東西就全了,包括寫的代碼編譯成的class文件,依賴的包,配置文件,所有的網站頁面,包括html,jsp等等。一個war包可以理解為是一個web項目,里面是項目的所有東西。
我們什么時候應該使用WAR文件呢?在開發階段不適合使用WAR文件,因為在開發階段,經常需要添加或刪除Web應用程序的內容,更新Servlet類文件,而每一次改動后,重新建立WAR文件將是一件浪費時間的事情。在產品發布階段,使用WAR文件是比較合適的,因為在這個時候,幾乎不需要再做什么改動了。
一個war文件就相當於一個web應用程序;而jar文件就是把類和一些相關的資源封裝到一個包中,便於程序中引用。
在開發階段,我們通常將Servlet源文件放到Web應用程序目錄的src子目錄下,以便和Web資源文件區分。在建立WAR文件時,只需要將src目錄從Web應用程序目錄中移走,就可以打包了。
應用
1.怎么從war包中提取jar包
把war包的后綴名改成.rar的壓縮文件,在里面提取出jar包
2.jar包和war包都可以看成壓縮文件,用解壓文件都可以打開,jar包和war包所存在的原因是,為了項目的部署和發布,通常吧項目打包,通常在打包部署的時候,會在里面加上部署的相關信息。這個打包實際上就是把代碼和依賴的東西壓縮在一起,變成后綴名為.jar包和war包。但是這個“壓縮包”可以被編譯器直接使用,把war包放在tomcat目錄的webapp下,tomcat服務器在啟動的時候可以直接使用這個war包。通常tomcat的做法是解壓,編譯里面的代碼,所以當文件很多的時候,tomcat的啟動會很慢。