Windows 下 HOJ 后端本地启动:从零到一的完整避坑指南

发布时间:2026/7/14 20:46:59

Windows 下 HOJ 后端本地启动:从零到一的完整避坑指南 1. 环境准备避开Windows下的水土不服在Windows下启动HOJ后端就像让一个习惯吃辣的人突然改吃甜食——环境差异带来的水土不服是第一个拦路虎。我曾在凌晨三点因为Redis密码问题卡了两小时这些经验都会转化为你的避坑指南。1.1 MySQL安装与数据导入别急着运行SQL文件Windows下的MySQL有两个大坑等着你权限问题用管理员身份运行Navicat或MySQL命令行否则执行SQL时会报错。我建议直接用PowerShellmysql -u root -p hoj.sql mysql -u root -p hoj-update.sql字符集陷阱如果导入后中文乱码在my.ini中添加[mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_general_ci1.2 Nacos配置的暗礁官方推荐1.4.1版本不是没道理的。新版Nacos在Windows下经常出现服务注册失败的问题。下载慢试试这个国内镜像https://mirrors.huaweicloud.com/nacos/1.4.1/nacos-server-1.4.1.zip密码加密这个坑我踩过——直接修改nacos数据库users表时记得password字段要填加密后的值。用这个Python代码生成加密密码import bcrypt print(bcrypt.hashpw(你的密码.encode(), bcrypt.gensalt()).decode())1.3 Redis的死亡陷阱最坑的就是Redis密码HOJ强制要求密码验证但Windows版redis.windows.conf默认没密码。修改后必须用命令重启redis-cli shutdown redis-server redis.windows.conf验证密码是否生效redis-cli -a 你的密码 ping如果返回PONG才算成功。我曾因为没验证这个后面排查了三小时连接问题。2. 配置文件修改那些官方文档没说的细节2.1 bootstrap.yml的潜规则别被active: dev骗了在Windows下你还需要检查spring: cloud: nacos: discovery: namespace: 你的命名空间ID # 默认public可以删掉这行 config: file-extension: yml # 必须小写Windows对大小写不敏感但Java敏感2.2 application-dev.yml的隐藏关卡这几个参数最容易出错hoj: judge: # Windows路径必须转义 testcase: C:\\hoj\\testcase # 或者用正斜杠 # testcase: C:/hoj/testcase redis: password: 你的密码 # 密码有特殊字符时要用引号包住 database: 0 # 必须写数字不能写零3. 启动流程避开进程管理的坑3.1 环境检查清单启动前务必按这个顺序检查Nacos访问http://localhost:8848能看到服务列表Redis用redis-cli -a 密码 info查看运行状态MySQL确保hoj数据库有125张表执行完两个SQL文件后3.2 后端启动的玄学问题在IDEA里启动时建议先清理再编译执行mvn clean install -DskipTests右键项目 - Maven - Reload project如果报端口占用用这个命令杀进程netstat -ano | findstr 8080 taskkill /PID 占用PID /F3.3 前端启动的特殊技巧虽然标题是后端启动但前端有个坑不得不提不要用Windows的cmd运行npm会出现各种诡异编码问题。正确姿势在VSCode终端或Git Bash中运行设置环境变量set NODE_OPTIONS--openssl-legacy-provider npm run dev4. Docker方案曲线救国的智慧4.1 容器化部署的精髓Windows的Docker本质是虚拟机所以要注意# 获取宿主机IP而不是用localhost ipconfig | findstr IPv4 # 通常会是这个 host.docker.internal4.2 容器编排的实用配置修改docker-compose.yml时重点看services: hoj-backend: volumes: - ./config:/config # 把本地配置挂载进去 environment: - TZAsia/Shanghai # Windows默认时区会出问题 - SPRING_PROFILES_ACTIVEdev5. 自启动管理告别手动重启5.1 用NSSM创建服务把后端打包成jar后用这个批处理脚本创建服务nssm install HOJ-Backend java -jar hoj-backend.jar nssm set HOJ-Backend AppDirectory C:\hoj nssm set HOJ-Backend AppStdout C:\hoj\logs\stdout.log nssm start HOJ-Backend5.2 Redis自启动的坑千万别用redis.windows-service.conf我推荐这样配置创建启动脚本start_redis.batredis-server.exe redis.windows.conf --requirepass 你的密码把这个脚本放到开机启动文件夹copy start_redis.bat %AppData%\Microsoft\Windows\Start Menu\Programs\Startup\启动失败时别急着重装先看日志文件。我在Windows下部署HOJ后端不下20次最大的心得就是所有问题都有迹可循关键是要知道去哪找日志。Nacos的日志在logs/nacos.log后端日志默认在logs/hoj.logRedis日志在redis-server.log。养成先看日志的习惯能节省你90%的排查时间。

相关新闻