war包 & jar包
把java项目打成war包是比较传统的开发方式,这种方式需要额外安装Tomcat,放到Tomcat中的webapp目录来运行,优点及时可以灵活选择Tomcat的版本,修改它的配置以及规则。
但是当前这种部署方式是已经落后了的,相对于war包部署来说,打成jar包会更加的方便快捷,是springboot默认打包方式,springboot是开发java最优秀的框架,没有之一,它内置了tomcat,我们只需按照它的约定简单配置即可,毕竟 约定大于配置嘛!springboot把市面优秀的开源技术,都集合起来,方便快速应用。
所以这篇文章主要讲述部署jar包的方式,也是个人常用的方式开发部署。
部署方式
这里介绍几个常用的。
1、java -jar 命令
java -jar xxx.jar
这种命令呢,比较简单,它会实时把运行日志打印在控制台上面显示出来,缺点就是一旦我们操作或者关闭连接 它就会停止服务,运行结束。
2、nohup 命令
nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。
(1):后台启动,控制台退出不会关掉应用
nohup java -jar xxx.jar &
(2):后台启动,并输出日志到指定文件
nohup java -jar xxx.jar >> log.txt 2>&1 &
# 或
nohup java -jar xxx.jar > log.txt &
(3):后台启动,并输出日志到指定文件(日期时间命名)
nohup java -jar xxx.jar >> ./log/`date +%Y-%m-%d`.out 2>&1 &
# 在log目录下生成如2021-12-12.log文件
3、基于docker
首先需在本地存在DockerFile文件 构建示例
#FROM openjdk:8-jdk-alpine
FROM hub.c.163.com/dwyane/openjdk:8
MAINTAINER qinadu<邮箱地址>
EXPOSE 8080 # 对外暴露的端口
CMD ["--server.port:8080"] # 映射端口
CMD echo "---Docker容器环境配置成功,即将运行...---"
copy *.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
构建与运行:
# 构建
docker:build -t 镜像别名
# 运行
docker run -d -p --name 容器名 镜像别名
停止服务
1、nohup–停止服务
在运行程序时,nohup会返回进程号,因此可以使用kill命令结束该进程。
(1):通过端口查看进程
lsof -i:端口号
[root@hw-81969 ~]# lsof -i:8081
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3477448 root 16u IPv6 57335094 0t0 TCP *:tproxy (LISTEN)
或使用ps命令可以轻松的找到PID。
ps -ef|grep java
# 或
ps -ef|grep xxx.jar
(2):通过pid关闭服务
kill -9 PID
kill -9代表的信号是SIGKILL,表示进程被终止,需要立即退出,该信号不会被系统阻塞。
2、docker–停止服务
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止容器
docker kill 容器id # 杀掉容器
版权声明: 闲者 发表于 2024-07-31
转载请注明: Linux启动java项目的几种方式 | Linux启动java项目的几种方式 - 无界文档,Linux启动java项目的几种方式
暂无评论...