You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

@echo off
REM 一键启动所有服务脚本 (Windows)
echo =========================================
echo TCP点对点聊天系统 - 一键启动
echo =========================================
echo.
REM 检查Java版本
echo 检查Java环境...
java -version 2>&1 | findstr /C:"version"
if %errorlevel% neq 0 (
echo X 错误: 未找到Java请先安装Java 11或更高版本
pause
exit /b 1
)
echo.
REM 下载Gson库如果需要
if not exist "lib\gson-2.10.1.jar" (
echo 下载Gson库...
if not exist lib mkdir lib
powershell -Command "Invoke-WebRequest -Uri 'https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar' -OutFile 'lib\gson-2.10.1.jar'" 2>nul
if exist "lib\gson-2.10.1.jar" (
echo √ Gson库下载成功
) else (
echo X Gson库下载失败
echo 请手动下载: https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar
echo 并保存到: lib\gson-2.10.1.jar
pause
exit /b 1
)
)
echo.
REM 编译命令行版本
echo 编译命令行版本...
if not exist bin mkdir bin
javac -d bin -encoding UTF-8 src/common/*.java src/server/ChatServer.java src/server/ClientHandler.java src/client/ChatClient.java 2>&1
if %errorlevel% equ 0 (
echo √ 命令行版本编译成功
) else (
echo X 命令行版本编译失败
pause
exit /b 1
)
echo.
REM 编译Web版本
echo 编译Web版本...
javac -cp "lib\gson-2.10.1.jar" -d bin -encoding UTF-8 src/common/*.java src/server/WebSocketServer.java src/server/WebSocketClient.java 2>&1
if %errorlevel% equ 0 (
echo √ Web版本编译成功
) else (
echo X Web版本编译失败
pause
exit /b 1
)
echo.
REM 选择启动模式
echo 请选择启动模式:
echo 1) Web图形界面服务器 (端口 8080)
echo 2) 命令行TCP服务器 (端口 8888)
echo 3) 命令行客户端
echo 4) 同时启动Web和TCP服务器
echo.
set /p choice="请输入选项 [1-4]: "
if "%choice%"=="1" (
echo.
echo 启动Web图形界面服务器...
echo 访问地址: http://localhost:8080
echo 按 Ctrl+C 停止服务器
echo.
cd bin
java -cp ".;..\lib\gson-2.10.1.jar" server.WebSocketServer
) else if "%choice%"=="2" (
echo.
echo 启动命令行TCP服务器...
echo 监听端口: 8888
echo 按 Ctrl+C 停止服务器
echo.
cd bin
java server.ChatServer
) else if "%choice%"=="3" (
echo.
echo 启动命令行客户端...
echo.
cd bin
java client.ChatClient
) else if "%choice%"=="4" (
echo.
echo 同时启动Web和TCP服务器...
echo Web服务器: http://localhost:8080
echo TCP服务器: 端口 8888
echo 按 Ctrl+C 停止所有服务器
echo.
start "Web服务器" cmd /c "cd bin && java -cp ".;..\lib\gson-2.10.1.jar" server.WebSocketServer"
start "TCP服务器" cmd /c "cd bin && java server.ChatServer"
echo 服务器已在新窗口中启动
pause
) else (
echo X 无效选项
pause
exit /b 1
)