加固exit退出流程。

This commit is contained in:
2026-01-15 19:32:38 +08:00
parent 23c73a5ef4
commit 098b9887e2
3 changed files with 121 additions and 35 deletions

View File

@@ -1,14 +1,23 @@
#!/bin/bash
# 1. 先跳转到脚本所在目录,再定位项目根目录(核心修复)
cd "$(dirname "${BASH_SOURCE[0]}")"
BASE_DIR=$(cd .. && pwd) # 从bash目录向上跳1级得到项目根目录
# Termux专属启动脚本 编译+启动 解决exit后卡空行/需手动^C问题
cd "$(dirname "${BASH_SOURCE[0]}")" || { echo "目录切换失败"; exit 1; }
BASE_DIR=$(cd .. && pwd)
# 2. 执行编译用绝对路径调用build_class.sh避免路径问题
bash "$BASE_DIR/bash/build_class.sh"
# 1. 编译校验
BUILD_SH="$BASE_DIR/bash/build_class.sh"
bash "$BUILD_SH" || { echo "编译失败退出"; exit 1; }
# 3. 配置类路径指向根目录的runtime和libs
CLASSPATH="$BASE_DIR/runtime:$BASE_DIR/libs/*"
# 2. 类路径配置
CLASSPATH="$BASE_DIR/runtime"
[ -d "$BASE_DIR/libs" ] && CLASSPATH="$CLASSPATH:$BASE_DIR/libs/*"
MAIN_CLASS="Main"
echo "正在启动 Main 类,类路径:$CLASSPATH"
java -cp "$CLASSPATH" $MAIN_CLASS
# 3. 关键修复:预重置终端+进程绑定+退出后强制清流
stty -echoctl # 屏蔽^C视觉印记
echo -e "\n🚀 服务启动中输入help查指令输入exit优雅停机"
# 启动并绑定进程Java结束脚本立刻走后续逻辑
java -cp "$CLASSPATH" "$MAIN_CLASS"
# Java退出后 强制重置终端+脚本退出,彻底无残留
stty sane
exit $?