引言
你是否发现,在springboot项目中,用mvn install打包成jar形式,然后换一台拥有jdk的机器,就可以直接通过java -jar 项目名.jar 的方式运行,没有任何问题并且不需要tomcat
打包成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文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
这使得我们可以用解压工具来预览里面的内容
【格式特点】:
-
安全性 可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。
-
减少下载时间 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。
-
压缩 JAR 格式允许您压缩文件以提高存储效率。
-
传输平台扩展 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个war扩展名。
【建立的条件】:
-
需要建立正确的Web应用程序的目录层次结构。
-
建立
WEB-INF
子目录,并在该目录下建立classes与lib两个子目录。 -
将Servlet类文件放到
WEB-INF\classes
目录下,将Web应用程序所使用Java类库文件(即JAR文件)放到WEB-INF\lib
目录下。 -
将JSP页面或静态HTML页面放到上下文根路径下或其子目录下。
-
建立
META-INF
目录,并在该目录下建立context.xml
文件。
打包操作
jar包形式
打包成jar形式很简单,你可以通过idea右侧菜单中找到package即可,我们往往先进行clean操作后在进行package,也可以用过输入命令的形式:mvn clean package,这条命令实际上执行了clean 和 package
war包形式
打包成war需要一个ServletInitializer
类,这个类的位置需要和启动类在同一个文件下,同时我们需要修改pom.xml文件,将<packaging></packaging>中的值修改为war,同时如果我们的SpringBoot是使用html作为前端页面开发没有问题,但是如果我们想用jsp开发,这个时候就需要配置一些依赖了:主要是排除SpringBoot的内置Tomcat,添加javax.servlet-api
和tomcat-servlet-api
(SpringMVC还需要配置后缀),随后的操作如同jar打包一样,输入命令或者package
如果在创建项目的时候直接选择package为war,直接就能打成war包了
标签:文件,SpringBoot,tomcat,JAR,jar,war,打包 From: https://www.cnblogs.com/wegop/p/17533452.html