Java為什麼要打war包?

程文順


打war是對java的偏見

java很多開發都在用

例如安卓手機端開發,web開發也不一定打war包,war包只是運行在一個容器裡的例如TOMCAT壓縮包而已。現在很多web開發都打jar包了。

java語言是面向對象的鼻祖

java之前是sun公司的,後來被收購了,是面向對象的鼻祖,例如微軟的c#就是模仿java的自己搞了一套。

java的開源項目也很多

很多大數據方面的開源項目都是開源的,也都不是war包。其中阿里巴巴也開源了很多。


IT小書童


這個事情好像就發生在幾年前。

說是war這小子經常欺負maven同學,maven是一位乖巧可愛的小女生,經常幫班裡的學渣java同學做一些事情,深得java同學的喜歡。java同學發現war這小子欺負自己的心上人,然後就找了他的狐朋狗友spring、springmvc、springboot、mybatis還有社會青年nginx、redis、kafka、mysql等人打了war這小子。

事情的經過好像就是這樣。


阿邁達聊技術


war包可以理解為編譯過後,直接在web容器中運行的模塊,以Tomcat來說,將打包好的war包放入\\webapp\\下,啟動tomcat就會解壓war包,相當於發佈了該應用程序。那麼為什麼要將JAVA工程打包成war包,裡面有什麼東西,war包和jar包有什麼區別,下面簡單說明:

一個war包就相當於一個ZIP格式的的壓縮文件,裡面包含JAVA代碼編譯成的class文件,依賴的包,配置文件,所有靜態資源如:js、html、css、jsp等,一個war包可以理解成web項目裡面所有的東西。

JAVA打包的另一種方式jar包是為了讓.java文件直接編譯成.class文件被jvm跨平臺直接運行,當然,jar包裡面還包含一些特殊文件,比如:manifects和META-INF,描述符等,用來指示工具如何處理特定的jar。

jar包的主要作用就是別人寫好的JAVA文件你只要放入自己的lib目錄下,你的程序就可以讀取使用,或者使用pom文件直接添加需要的jar包的maven依賴。其實作用一樣,就是引入別人的JAVA程序在你的工程中。一個war包可能裡面存在多個jar包,是war包的組成部分。

springboot的打包方式jar包也可以直接啟動web應用的原因是它裡面嵌入了內置的web容器,只要啟動springboot的main方法入口,程序就會自動啟動toncat或者別的web容器的starter,相當於自我發佈服務,所以操作非常方便。


java追風師


這個不一定的。 spring boot 架構的,發佈默認打包成 jar。

服務器運行: nohup Java -jar 你程序的名稱 &


各種開發


war包:Java web工程,都是打成war包,進行發佈,如果我們的服務器選擇TOMCAT等輕量級服務器,一般就打出WAR包進行發佈;打成war包的好處是不會缺少目錄,並且只管理好一個發佈文件就好。另外,容器在部署的時候還有其他一些操作,例如,針對容器的優化之類的。你用了WebSphere就知道和Tomcat不一樣了。比如,自動刪掉空目錄。


分享到:


相關文章: