文章目录
- 一、前景(jar包和war包区别)
- 一、部署jar包程序
- 1. 项目打成jar包
- ①方式一:使用idea工具打包项目
- ②方式二:通过cmd命令的方式打包项目
- 2. 项目命令启动
- ① 查看之前启动的程序,关闭之
- ② 启动程序
- ③ 验证是否部署成功
- ④ 部署时的问题 (多个项目不同端口的防火墙问题/解决方法)
- 解决方式一:直接关闭防火墙(不推荐)
- 解决方式二:增加对应的访问端口 (
推荐
) - 1. 查看防火墙已开发端口
- 2. 增加防火墙开放端口
- 方式一:使用命令添加 (
推荐
) - 方式二:使用编辑/etc/firewalld/zones/public.xml文件的方式增加
- 方式一:使用命令添加 (
- 3. 验证访问成功
- 二、部署war包程序
- 1. 将war包放在webapps目录下
- 2. 重启Tomcat
- (1)进入Tomcat的bin目录
- (2)关闭Tomcat
- (3)查看Tomcat是否已关闭
- (4)启动Tomcat
一、前景(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命令的方式打包项目
在Windows系统下,通过按下Win + R键打开终端运行窗口;
通过 cmd cd 到你的java项目文件夹下; ( G:
切换盘符,注意:不需要区分大小写,但是“:”冒号需要加上
)
PS:上面的Java项目文件夹,指的是你项目的根路径
最后执行命令
mvn clean package -DskipTests
( PS: 意思是:先执行mvn clean,删除之前编译的文件,再执行mvn package,进行工程打包操作,在打包的时候跳过test文件夹和文件
)
然后就会在你的target文件夹下有一个jar包
2. 项目命令启动
通过FinalShell、XShell或者命令的形式把jar包上传到Linux服务器中。(springboot的jar包,可以不必放在webapp目录下。)
① 查看之前启动的程序,关闭之
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程序就会结束。故不推荐使用。只适合本地开发和测试时使用
③ 验证是否部署成功
本地电脑(外网访问) : 输入虚拟机Linux环境的IP地址加项目端口xxxx访问
PS: 注意:如果是正常的部署项目端口号且为8080;那么就没有下述的问题,可以跳过不用管。
④ 部署时的问题 (多个项目不同端口的防火墙问题/解决方法)
注意: 如果Linux虚拟机内网中能够正常访问,而外部本地电脑不能够访问,那么很可能是Linux环境防火墙没有关闭。
或者说端口号没开启。
解决方式一:直接关闭防火墙(不推荐)
(此举只适用于自己本身的开发或者测试环境、生产环境不建议这么做)
输入以下命令关闭防火墙:
查看防火墙状态
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
PS:(–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 完结
上一篇:
Linux 导入MySQL数据库(四)
下一篇:
end