查看OpenJDK11安装包列表
yum list|grep java-11-openjdk
执行安装命令。
yum install -y java-11-openjdk.x86_64
查看安装成功的版本。
[root@localhost ~]# java -versionopenjdk version "11.0.21" 2023-10-17 LTSOpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS)OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS, mixed mode, sharing)
设置JAVA_HOME。
通过命令查找java安装的真实路径,使用which java找到的是软链接,需要通过ll命令一层层查找真实路径,我们这边最终/usr/bin/java真实的路径为 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java,那么我们的JAVA_HOME就是java的安装目录/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64,去掉 末尾的 /bin/java 。
[root@localhost ~]# which java/usr/bin/java[root@localhost ~]# ll /usr/bin/javalrwxrwxrwx 1 root root 22 Jan 2 16:13 /usr/bin/java -> /etc/alternatives/java[root@localhost ~]# ll /etc/alternatives/javalrwxrwxrwx 1 root root 64 Jan 2 16:13 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java[root@localhost ~]# ll /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java-rwxr-xr-x 1 root root 13192 Nov 15 00:51 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java
编辑/etc/profile文件,添加JAVA_HOME配置,并使用source /etc/profile命令使环境配置生效,不需要配置CLASS_APTH, rt.jar, tools.jar。
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
定义运行服务需要的参数,服务名称、服务程序路径、日志文件等,这里可以感觉自己的需要来定义,包括可以添加java -jar的运行参数等。
#!/bin/bashAPP_NAME="gitegg-application.jar" # 命令号提示服务名APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路径LOG_FILE="/opt/server/gitegg-application.log" # 日志输出文件路径,一般我们服务会记录日志,如果不想在这里输出,那么可以填写 /dev/null
定义命令脚本运行提示,如果输入的命令格式错误,这里可以给出正确的命令格式等。
#使用说明,提示输入参数usage() { echo "Usage: sh start_server.sh [start|stop|restart|status]" exit 1}
定义检查服务是否正在运行的函数。
#检查服务是否正在运行is_running(){ pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `if [ -z "${pid}" ]; then return 1 else return 0 fi}
定义启动服务的函数。
#启动服务start(){ is_running if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else nohup java -jar $APP_PATH > $LOG_FILE 2>&1 & fi}
定义停止服务的函数。
#停止服务stop(){ is_running if [ $? -eq "0" ]; then kill -9 $pid else echo "${APP_NAME} is not running" fi}
定义查看服务运行状态的函数。
#显示运行状态status(){ is_running if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi}
定义服务重启函数。
#重启服务restart(){ stop start}
脚本接收参数,根据参数执行对应的命令函数。
#选择要运行的命令case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;;esac
设置脚本执行权限,填写自己脚本文件的实际路径。
chmod +x /opt/server/start_server.sh
#!/bin/bashAPP_NAME="gitegg-application.jar" # 命令号提示服务名APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路径LOG_FILE="/opt/server/gitegg-application.log" # 日志输出文件路径,一般我们服务会记录日志,如果不想在这里输出,那么可以填写 /dev/null #使用说明,提示输入参数usage() { echo "Usage: sh start_server.sh [start|stop|restart|status]" exit 1} #检查服务是否正在运行is_running(){ pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `if [ -z "${pid}" ]; then return 1 else return 0 fi} #启动服务start(){ is_running if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else nohup java -jar $APP_PATH > $LOG_FILE 2>&1 & fi} #停止服务stop(){ is_running if [ $? -eq "0" ]; then kill -9 $pid else echo "${APP_NAME} is not running" fi} #显示运行状态status(){ is_running if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi} #重启服务restart(){ stop start} #选择要运行的命令case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;;esac
在CentOS中的服务是由systemd管理的,可以通过systemctl命令进行服务运行的相关操作。
新增管理服务gitegg-server.service,服务名称可以自己定义,此服务放到 /lib/systemd/system/ 目录。
vi /lib/systemd/system/gitegg-server.service
编写服务内容。
[Unit] Description=gitegg-server After=docker.socket early-docker.target network.targetWants=network-online.target docker.serviceRequires=docker.socket [Service] Type=forking ExecStart=/opt/server/start_server.sh startExecStop=/opt/server/start_server.sh stop ExecSatus=/opt/server/start_server.sh status ExecRestart=/opt/server/start_server.sh restart [Install] WantedBy=multi-user.target
保存并重新加载配置。
systemctl daemon-reload
设置服务开机启动。
systemctl enable gitegg-server.service
可以直接使用systemctl 命令操作服务。
# 启动服务systemctl start gitegg-server.service# 关闭服务systemctl stop gitegg-server.service# 查看服务状态systemctl status gitegg-server.service# 重启服务systemctl restart gitegg-server.service
本文链接:http://www.28at.com/showinfo-26-57925-0.html告别Java -Jar启动!告诉你启动单机SpringBoot服务的正确操作方式
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 八张图讲清楚Mmap实现原理
下一篇: JS 中如何克隆对象?你学会了吗?