Linux 部署Java项目-jar包和war包(五)
一、前景(jar包和war包区别)
部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别:
spring boot既可以打成war发布,也可以打成jar包发布。说一下区别:
jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。
war包:传统的应用交付方式,需要安装tomcat,然后放到waeapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略。相对打成jar包来说没那么快速方便。
个人比较偏向打成jar包的方式发布应用,因为spring boot已经内置了tomcat,无需额外配置。其实可以搜索下spring
boot的特点,有个非常重要的特性就是spring.
boot把市面优秀的开源技术,都集合起来,方便快速应用。技术没有百分百这种好,也没有百分百那种不好,存在即合理,最主要还是看个人习惯和业务场景需求了。
一、部署jar包程序
1. 项目打成jar包
①方式一:使用idea工具打包项目
②方式二:通过cmd命令的方式打包项目
PS:上面的Java项目文件夹,指的是你项目的根路径
然后就会在你的target文件夹下有一个jar包
2. 项目命令启动
① 查看之前启动的程序,关闭之
1.查看项目运行的进程的id ps -ef|grep java
以上说明没有包含 .jar包运行的Java文件
2.kill 掉该进程即可 ; -9表示无条件结束 kill -9 xxx
② 启动程序
1.nohup启动方式('推荐,也是本次使用的命令')。nohup java -jar XXX.jar >jarLog.txt & nohup java -jar person-admin.jar >jarLog.txt & // 这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。 nohub: 不挂断的运行命令 &:后台运行 >: 日志重定向输出到某个文件
PS: java -jar启动方式。
java -jar *.jar
此中方式只会运行在当前窗口,当关闭窗口或断开连接,jar程序就会结束。故不推荐使用。只适合本地开发和测试时使用
③ 验证是否部署成功
PS: 注意:如果是正常的部署项目端口号且为8080;那么就没有下述的问题,可以跳过不用管。
④ 部署时的问题 (多个项目不同端口的防火墙问题/解决方法)
解决方式一:直接关闭防火墙(不推荐)
查看防火墙状态 systemctl status firewalld.service 关闭防火墙 systemctl stop firewalld.service
延伸的相关命令:
开启防火墙 systemctl start firewalld.service 关闭防火墙开机启动 systemctl disable firewalld 检查防火墙服务是否已启用 (/禁止还是启用状态) systemctl is-enabled firewalld 打开开机自启 systemctl enable firewalld 查看防火墙已开放端口列表 firewall-cmd --list-all
解决方式二:增加对应的访问端口 (推荐
)
1. 查看防火墙已开发端口
firewall-cmd --list-all
2. 增加防火墙开放端口
方式一:使用命令添加 (推荐
)
firewall-cmd --zone=public --add-port=8888/tcp --permanent
方式二:使用编辑/etc/firewalld/zones/public.xml文件的方式增加
sudoedit /etc/firewalld/zones/public.xml
输入命令生效:
firewall-cmd --reload
查看是否生效:
firewall-cmd --list-all
3. 验证访问成功
jar包 部署 END 完结
二、部署war包程序
1. 将war包放在webapps目录下
2. 重启Tomcat
(1)进入Tomcat的bin目录
cd /usr/local/tomcat/bin
(2)关闭Tomcat
./shutdown.sh
(3)查看Tomcat是否已关闭
ps -ef|grep java
如果显示如下相似信息,说明Tomcat还没有关闭
root 7010 1 0 Apr19 ? 00:30:13 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
使用kill命令直接杀死相应进程
kill -9 7010
(4)启动Tomcat
./startup.sh
war包 部署 END 完结
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:
《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq
想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ