部署在linux中的jar包如何使用外部的yml

部署在linux中的jar包如何使用外部的yml 在我们部署后端java的jar包时候,经常会应为改一些yml配置而重新打包,部署,这样会很麻烦,为什么不把yml等配置文件放在外面,这样修改起来也方便,修改完成后重启一下即可,下面展示如何操作操作步骤 1.准备好yml文件,并放入linux中,2修改启动脚本 3重启完成一.把打包好的Java包放到对应位置我放在了 /opt/myapp-dp/back里面,层级是这样的/opt/myapp-dp/back | |----- zabbix.jar (java包) | |----- start.sh (启动脚本) | |----- stop.sh (停止脚本) | |----- config (存放application.yml)位置就这样放,那么很显然 yml的绝对路径是 /opt/myapp-dp/back那么接下来就只用修改启动类xiu#!/bin/bash # # Java JAR 启动脚本 # # 配置项 JAR_NAMEzabbix-1.0.0.jar # JAR包名称 APP_NAMEZabbixApplication # 应用名称用于显示 JAVA_OPTS-Xms512m -Xmx1024m # JVM参数 LOG_FILE/var/log/dp.log # 日志文件路径 PID_FILEapp.pid # PID文件路径 # 颜色输出 GREEN\033[0;32m YELLOW\033[1;33m RED\033[0;31m NC\033[0m # No Color # 检查JAR文件是否存在 if [ ! -f $JAR_NAME ]; then echo -e ${RED}错误: 找不到JAR文件 $JAR_NAME${NC} exit 1 fi # 创建日志目录 mkdir -p $(dirname $LOG_FILE) # 检查是否已在运行 if [ -f $PID_FILE ]; then PID$(cat $PID_FILE) if ps -p $PID /dev/null 21; then echo -e ${YELLOW}警告: $APP_NAME 已在运行中 (PID: $PID)${NC} exit 1 else # PID文件存在但进程不存在删除旧PID文件 rm -f $PID_FILE fi fi echo -e ${GREEN}正在启动 $APP_NAME ...${NC} echo JAR文件: $JAR_NAME echo JVM参数: $JAVA_OPTS echo 日志文件: $LOG_FILE # 启动应用 nohup java $JAVA_OPTS -jar $JAR_NAME --spring.config.locationfile:/opt/myapp-dp/back/config/application.yml $LOG_FILE 21 # 获取PID并保存 PID$! echo $PID $PID_FILE # 等待几秒检查是否成功启动 sleep 3 if ps -p $PID /dev/null 21; then echo -e ${GREEN}✓ 启动成功!${NC} echo 进程PID: $PID echo 查看日志: tail -f $LOG_FILE else echo -e ${RED}✗ 启动失败请检查日志: $LOG_FILE${NC} rm -f $PID_FILE exit 1 fi修改完成后,esc wq! 保存退出最后重启就OK了