goeingPrintServer/start-printserver.sh
2025-07-01 10:01:07 +08:00

89 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# 打印服务器启动脚本
# 此脚本提供了多种启动模式,适应不同的环境需求
# 默认配置
JAR_FILE="target/goeingPrintServer.jar"
JAVA_OPTS=""
HEADLESS_MODE=false
DEBUG_MODE=false
MEMORY="512m"
# 显示帮助信息
show_help() {
echo "打印服务器启动脚本"
echo "用法: $0 [选项]"
echo ""
echo "选项:"
echo " -h, --help 显示此帮助信息"
echo " -j, --jar FILE 指定JAR文件路径 (默认: $JAR_FILE)"
echo " --headless 以无头模式运行 (无图形界面)"
echo " --debug 启用远程调试 (端口: 5005)"
echo " -m, --memory SIZE 设置最大内存 (默认: $MEMORY)"
echo ""
echo "示例:"
echo " $0 --headless 以无头模式启动服务器"
echo " $0 --memory 1g 设置最大内存为1GB"
echo " $0 --jar custom.jar 使用自定义JAR文件"
exit 0
}
# 解析命令行参数
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
show_help
;;
-j|--jar)
JAR_FILE="$2"
shift
;;
--headless)
HEADLESS_MODE=true
;;
--debug)
DEBUG_MODE=true
;;
-m|--memory)
MEMORY="$2"
shift
;;
*)
echo "未知选项: $1"
echo "使用 --help 查看帮助信息"
exit 1
;;
esac
shift
done
# 检查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; then
echo "错误: JAR文件 '$JAR_FILE' 不存在"
echo "请先构建项目或使用 --jar 选项指定正确的JAR文件路径"
exit 1
fi
# 构建Java选项
JAVA_OPTS="$JAVA_OPTS -Xmx$MEMORY"
# 添加无头模式选项
if [ "$HEADLESS_MODE" = true ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
echo "启用无头模式 (无图形界面)"
fi
# 添加调试选项
if [ "$DEBUG_MODE" = true ]; then
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
echo "启用远程调试模式 (端口: 5005)"
fi
# 启动应用程序
echo "正在启动打印服务器..."
echo "使用JAR文件: $JAR_FILE"
echo "Java选项: $JAVA_OPTS"
echo ""
java $JAVA_OPTS -jar "$JAR_FILE"