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形式,參考第一問。