@echo off chcp 65001 >nul setlocal enabledelayedexpansion :: 设置路径 set JAVA_FX_PATH=javafx-sdk-17.0.16\lib set MAIL_JAR=referenced-lib\activation-1.1.1.jar set ACTIVATION_JAR=referenced-lib\javax.mail-1.6.2.jar :: 检查必要的 JAR 文件 if not exist "%MAIL_JAR%" ( echo 错误: 找不到 %MAIL_JAR% echo 请确保 JavaMail JAR 文件存在于 lib 文件夹中 pause exit /b 1 ) if not exist "%ACTIVATION_JAR%" ( echo 警告: 找不到 %ACTIVATION_JAR%,尝试继续编译... ) :: 清理并创建输出目录 if exist out rmdir /s /q out mkdir out :: 构建类路径 set CLASSPATH=%MAIL_JAR% if exist "%ACTIVATION_JAR%" set CLASSPATH=%CLASSPATH%;%ACTIVATION_JAR% echo 类路径: %CLASSPATH% echo. :: 编译项目 echo 正在编译项目... javac -d out --module-path "%JAVA_FX_PATH%" --add-modules javafx.controls,javafx.fxml ^ -cp "referenced-lib\activation-1.1.1.jar;referenced-lib\javax.mail-1.6.2.jar" ^ auth\AuthService.java ^ auth\User.java ^ auth\UserManager.java ^ generator\HighGenerator.java ^ generator\MiddleGenerator.java ^ generator\PrimaryGenerator.java ^ generator\Problem.java ^ generator\ProblemGenerator.java ^ service\ExamService.java ^ ui\ExamController.java ^ ui\LoginController.java ^ ui\MainApplication.java ^ ui\ModifyPasswordController.java ^ ui\RegisterController.java ^ util\EmailService.java ^ util\ExpressionUtils.java ^ util\FileUtils.java ^ util\ModifyUtils.java ^ Main.java if !errorlevel! neq 0 ( echo. echo 编译失败! echo 请检查: echo 1. JavaFX 路径是否正确: %JAVA_FX_PATH% echo 2. JAR 文件是否存在: %CLASSPATH% pause exit /b 1 ) :: 复制资源文件 echo 正在复制资源文件... xcopy fxml out\fxml /E /I /Y >nul 2>&1 copy user.txt out\user.txt >nul 2>&1 :: 运行项目 echo 正在启动应用程序... java --module-path "%JAVA_FX_PATH%" ^ --add-modules javafx.controls,javafx.fxml ^ -cp "out;%CLASSPATH%" ^ -Dfile.encoding=UTF-8 ^ Main