【java】1000問2SpringBoot項目打成war和jar有什麼區別

1、我的一個springboot項目,用mvn install打包成jar,換一臺有jdk的機器就直接可以用java -jar 項目名.jar的方式運行,沒任何問題,爲什麼這裏不需要tomcat也可以運行了?

 

2、然後我打包成war放進tomcat運行,發現端口號變成tomcat默認的8080(我在server.port中設置端口8090)項目名稱也必須加上了。

也就是說我在原來的機器的IDEA中運行,項目接口地址爲 ip:8090/listall,打包放進另一臺機器的tomcat就變成了ip:8080/項目名/listall。這又是爲什麼呢?

 

通過jar運行實際上是啓動了內置的tomcat,所以用的是應用的配置文件中的端口

 

直接部署到tomcat之後,內置的tomcat就不會啓用,所以相關配置就以安裝的tomcat爲準,與應用的配置文件就沒有關係了

 

jar包和war包的區別:

1、war是一個web模塊,其中需要包括WEB-INF,是可以直接運行的WEB模塊;jar一般只是包括一些class文件,在聲明瞭Main_class之後是可以用java命令運行的。

 

2、war包是做好一個web應用後,通常是網站,打成包部署到容器中;jar包通常是開發時要引用通用類,打成包便於存放管理。

 

3、war是Sun提出的一種Web應用程序格式,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織;classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)可以打包成jar放到WEB-INF下的lib目錄下。

 

如何打包成jar或者war形式,參考第一問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章