Java-启动JAR管理脚本-sh版
Java-启动JAR管理脚本-bash版
1 #!/bin/bash 2 3 # 设置应用程序路径 4 APP_NAME="vote-admin-back-0.0.1-SNAPSHOT.jar" 5 APP_PATH="../$APP_NAME" 6 7 # 获取当前日期,格式为:年-月-日 8 CURRENT_DATE=$(date +%Y-%m-%d) 9 10 # 设置日志路径,按天存储 11 LOG_PATH="../logs/${APP_NAME%.*}_$CURRENT_DATE.log" 12 13 # 创建日志目录 14 mkdir -p "../logs" 15 16 # 日志记录函数 17 log() { 18 echo "[$(date +%Y-%m-%d %H:%M:%S)] $*" >> "$LOG_PATH" 19 } 20 21 # 显示菜单函数 22 show_menu() { 23 clear 24 echo 25 echo "=================================" 26 echo " JAR应用程序管理工具" 27 echo "=================================" 28 echo 29 echo " 1、 启动应用程序" 30 echo " 2、 停止应用程序" 31 echo " 3、 重启应用程序" 32 echo " 4、 查看当天应用日志" 33 echo " 5、 查看指定七天内应用日志" 34 echo " 6、 实时查看应用日志" 35 echo " 7、 退出" 36 echo 37 echo "=================================" 38 } 39 40 # 获取用户选择函数 41 get_choice() { 42 read -p "请输入选项 [1-7]: " choice 43 while [[ -z "$choice" ||! "$choice" =~ ^[1-7]$ ]]; do 44 echo "无效的选项,请输入 1-7 之间的数字!" 45 sleep 2 46 show_menu 47 read -p "请输入选项 [1-7]: " choice 48 done 49 } 50 51 # 启动应用程序函数 52 start_app() { 53 echo "正在启动应用程序..." 54 log "尝试启动应用程序..." 55 java -Dfile.encoding=UTF-8 -jar "$APP_PATH" >> "$LOG_PATH" 2>&1 & 56 echo "应用程序已启动。" 57 log "应用程序已启动" 58 read -p "按回车键继续..." 59 } 60 61 # 停止应用程序函数 62 stop_app() { 63 echo "正在停止应用程序..." 64 log "尝试停止应用程序..." 65 pkill -f "$APP_NAME" 66 if [ $? -ne 0 ]; then 67 echo "错误:未找到正在运行的应用程序。" 68 log "错误:未找到正在运行的应用程序" 69 else 70 echo "应用程序已停止。" 71 log "应用程序已停止" 72 fi 73 read -p "按回车键继续..." 74 } 75 76 # 重启应用程序函数 77 restart_app() { 78 echo "正在重启应用程序..." 79 log "尝试重启应用程序..." 80 stop_app 81 start_app 82 } 83 84 # 查看当天应用日志函数 85 view_today_log() { 86 echo "正在查看当天应用日志..." 87 if [ -f "$LOG_PATH" ]; then 88 less "$LOG_PATH" 89 else 90 echo "当天日志文件不存在!" 91 log "查看当天日志失败:日志文件不存在" 92 fi 93 read -p "按回车键继续..." 94 } 95 96 # 查看指定七天内应用日志函数 97 view_specific_log() { 98 read -p "请输入要查看日志的日期(格式:年-月-日,例如 2025-04-29):" specific_date 99 SPECIFIC_LOG_PATH="../logs/${APP_NAME%.*}_$specific_date.log" 100 if [ -f "$SPECIFIC_LOG_PATH" ]; then 101 less "$SPECIFIC_LOG_PATH" 102 else 103 echo "指定日期的日志文件不存在!" 104 log "查看指定日期日志失败:日志文件不存在,日期:$specific_date" 105 fi 106 read -p "按回车键继续..." 107 } 108 109 # 实时查看应用日志函数 110 view_realtime_log() { 111 echo "正在实时查看应用日志(按 Ctrl + C 停止查看)..." 112 if [ -f "$LOG_PATH" ]; then 113 tail -f "$LOG_PATH" 114 else 115 echo "日志文件不存在!" 116 fi 117 read -p "按回车键继续..." 118 } 119 120 # 主循环 121 while true; do 122 show_menu 123 get_choice 124 case "$choice" in 125 1) start_app ;; 126 2) stop_app ;; 127 3) restart_app ;; 128 4) view_today_log ;; 129 5) view_specific_log ;; 130 6) view_realtime_log ;; 131 7) 132 echo "退出应用程序管理工具..." 133 log "退出应用程序管理工具" 134 exit 0 135 ;; 136 *) 137 echo "无效的选项,请输入 1-7 之间的数字!" 138 sleep 2 139 ;; 140 esac 141 done
文件另存为restart.sh