#!/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"