关于springboot项目的jar和war两种打包方式部署的区别?

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为准,与应用的配置文件就没有关系了
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-08
JAR文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。

【格式特点】:

安全性 可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。

减少下载时间 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。

压缩:JAR 格式允许您压缩文件以提高存储效率。

传输平台扩展:Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。

springboot在打包部署的时候打包成jar和war有什么不同?
SpringBoot在打包部署时,提供两种形式:jar和war。选择不同形式,意味着在具体环境下的执行方式和适应场景有所不同。若打包为jar,此文件可直接独立执行。原因在于SpringBoot内部做了特殊处理,将jetty\/tomcat等组件封装在jar包中,且默认main函数指向SpringBoot启动bootstrap,使之具备自启动能力。将应用打包...

java项目打包成jar包和war包有什么区别?
Java项目打包成jar包和war包的区别主要体现在项目的架构和部署方式上。在当下,spring boot项目通常以maven或gradle方式打成jar包,包内仅包含与Java相关的文件,如.class或xml、properties等。而war包因其首字母“w”代表“web”,包内则包含了web相关文件,如jsp等。在spring boot项目中,虽然也可以将...

springboot项目打包成war用tomcat运行好还是打包成jar直接启动好?为何...
1、war包方式部署 war包其实是打包后的Java Web工程, 本质上是个压缩包 ,里面包含了很多目录及文件,我们把war包放入Tomcat这类容器中启动后,war包就会自动解压出一个同名的文件夹来。注意:Spring Boot项目如果要打包成war包来部署,是需要修改项目入口文件代码的。另外由于Spring Boot内置了Tomcat容...

使用maven和fat jar\/war运行应用程序的对比
在处理Spring Boot应用程序的部署时,我们通常会遇到两种方式:使用Maven命令或创建fat jar\/war包。Maven的mvn spring-boot:run命令提供了便利,而fat jar\/war则适用于不同的部署环境。Maven Spring Boot Plugin的运用,使得部署过程更加高效,它能在打包时自动下载依赖。通过在项目根目录下执行mvn命令,应...

在idea中创建多模块的SpringBoot项目
在IDEA中创建多模块的SpringBoot项目,需要了解Maven项目的三种打包方式,分别为war、jar、pom。其中war包项目适合放在tomcat下运行,而jar包则使用java -jar xxx.jar命令运行,SpringBoot项目通常打包成jar。pom仅仅用于依赖管理,打包的项目无法直接运行。创建项目时,首先创建一个父工程,包含三个子模块:...

Docker部署SpringBoot项目的两种方式总结
1. 手工方式部署首先,将SpringBoot项目打包成jar文件。然后,创建Dockerfile,以基础镜像Spring Boot为起点,定义关键步骤如下:FROM: 明确运行环境,如`FROM openjdk:8-jdk-alpine`。VOLUME \/tmp: 持久化\/tmp目录,确保Tomcat容器使用。ADD: 将应用jar复制并重命名至容器内,如`ADD elk-web-1.0-...

运行Spring Boot 应用的 3 种方式!
1. IDE 内部运行 - 在 Eclipse 或 IntelliJ IDEA 等集成开发环境中,你可以直接通过jar包或war包方式运行。jar包方式下,Spring Boot默认内嵌服务器,只需运行包含主类的jar包。若应用为war包,则需配置服务器后运行。详情请参考相关教程。2. 打包并运行 - 当应用需要提测或部署时,通常会打...

运行springboot有哪几种方法
1、在IDE中运行 在Eclipse、IDEA中直接运行,又有以下两种方式。jar包方式:Spring Boot默认采用jar包内嵌Tomcat、Jetty等Server的方式,并需要提供一个含有main方法的主类。这个时候,直接在IDE中运行这个main方法就能启动Spring Boot应用了。war包方式:如果你的应用改装成了war包方式部署,这个时候就需要在...

ispring如何发布
iSpring的发布通常指的是Spring Boot项目的发布方式,主要有通过jar包发布和通过war包发布两种常见方式。通过jar包发布 Spring Boot项目默认打包成jar包,这种方式简单快捷,适合大多数基于Spring Boot的Web应用。发布步骤如下:1. 配置pom.xml:确保在项目的pom.xml文件中添加了Spring Boot Maven插件,该...

springboot多模块打war包(springboot多模块打包)
Springboot打包为war包报错:提示缺少web.xml在开发SpringBoot多模块项目中,打包时报错了,如下:其中SpringBootApplication启动类在rest模块,rest模块依赖于sdk模块,sdk模块依赖于core模块,core模块依赖于common模块。构建单模块项目和多模块项目打jar包时都不会报错。maven插件maven-war-plugin中Servlet版本...

相似回答