網頁

2018/9/15

Java JAR與WAR檔的區別

當完成一個Java專案時,最後都會將整個專案打包(package),通常可能打包成jar或war檔,而JAR和WAR的差異如下。


JAR(Java Archive)檔中包含了專案原始碼編譯成的class檔,使用的函式庫(library)及靜態資源如properties檔等。

WAR(Web Application Archive)檔中除了以上,還包含了Web應用程式會用的資源,例如jsp,html,javascript,及WEB-INF與其中的web.xml等。更重要的是war檔可以部屬(deploy)至Java網頁應用伺服器(Web Application Server)或Java網頁容器(Web Container),如Tomcat,JBoss AS(WildFly),WebLogic等。也就是說,war檔的目錄結構符合Java網路應用程式的規範(JSR 369: JavaTM Servlet 4.0 Specification)。

簡單來說,你可以把war檔看作是一種特殊的jar檔。其除了封裝專案程式碼及資源,也滿足網路應用程式的目錄結構,也因此可佈署並在網路應用伺服器上運行。

或者也可解釋為,jar是用來打包一般的Java專案;而war是用來打包Java網路應用程式專案。


參考:

沒有留言:

張貼留言