Linux启动java项目的几种方式

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项目的几种方式

评论区

暂无评论...