安装&升级
鉴于用户频繁咨询“安装失败报错“、”版本更新”等问题,本指南特提供详细的“安装、更新步骤”及“常见问题”解决教程。
windows一键安装
提示信息
新手推荐一键安装,快速体验系统功能,查看是否满足当前你的业务场景
账号密码:admin/111111
注意:v6.0.0版本,不在支持win7系统
下载

启动

1、加入qq群:811189776
2、下载一键安装包:群文件/v4.6.0.zip
3、解压到d盘
4、启动图形化界面:小猫考试.exe(右键以管理员身份运行)
5、配置对外访问地址:192.168.0.86
5.1、如果是局域网访问,ip为本机局域网的ip,如:192.168.110.99
5.2、如果是互联网访问,ip为互联网ip或域名,如:47.92.221.134、www.myexam.com
6、配置防火墙规则:允许本地8000端口对外访问。win默认防火墙默认开启时使用,非必须。
7、数据库:启动
8、考试服务:启动
9、浏览器打开 http://192.168.0.86:8000
10、验证成功:输入账号密码登录(admin/111111)视频教程
windows源码安装
注意事项
操作系统要求:win10,win11、win2016
软件版本要求:java21、mysql8、maven3.9、node24
基础配置



1、关闭防火墙
1.1、选择:控制面板/Windows Defender 防火墙/启用或关闭Windows Defender 防火墙
1.2、选择:关闭 Windows Defender 防火墙(不推荐)
1.3、确定
2、配置IP
2.1、选择:控制面板/网络和共享中心/更改适配器设置
2.2、选择:物理网卡/右键/属性/Internet 协议版本 4(TCP/IPv4)/双击/使用下面的 IP 地址(S):
2.3、配置ip地址:192.168.0.86/255.255.225.0/192.168.0.1/114.114.114.114
2.4、确定jdk下载

1、浏览器打开 https://www.oracle.com/cn/java/technologies/downloads/
2、选择 jdk21/Windows
4、点击下载:https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.zip (sha256)jdk安装


1、解压jdk:解压到D:\soft\
2、配置环境变量
2.1、选择:此电脑/属性/高级系统设置/环境变量(N)../新建
2.2、添加JAVA:JAVA_HOME=D:\soft\jdk-21.0.9
2.3、追加PATH:Path=%JAVA_HOME%/bin;原先的配置
3、校验
3.1、打开dos窗口,执行java -version
3.2、显示内容有 java version "21.0.9" 表示成功mysql下载


1、浏览器打开: https://dev.mysql.com/downloads/mysql/
2、下载
2.1、选择:8.4.7LTS/Microsoft Windows
2.2、选择:Windows (x86, 64-bit), ZiP Archive/Download
2.3、点击:No thanks, just start my download.mysql安装


1、解压mysql:解压到到D:\soft\
2、配置环境变量
2.1、选择:此电脑/属性/高级系统设置/环境变量(N)../新建
2.2、添加MYSQL:MYSQL_HOME=D:\soft\mysql-8.4.7-winx64
2.3、追加PATH:Path=%MYSQL_HOME%/bin;原先的配置
3、初始化并启动mysql服务
3.1、初始化data目录:mysqld --initialize
3.2、安装服务:mysqld -install MYSQL_EXAM
3.3、启动服务:net start MYSQL_EXAM
4、重置密码
4.1、打开文件:mysql-8.4.7-winx64\data\WIN-20251229HPQ.err
4.2、找到密码: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qhhrjq)aY9M;
4.3、登录mysql:mysql -uroot -pqhhrjq)aY9M;
4.4、重置密码:alter user 'root'@'localhost' identified by 'root';maven下载

1、浏览器打开 https://maven.apache.org/download.cgi
2、点击下载: apache-maven-3.9.12-bin.zipmaven安装

1、解压maven:解压maven到D:\soft\
2、配置环境变量
2.1、选择:此电脑/属性/高级系统设置/环境变量(N)../新建
2.2、添加MAVEN:MVN_HOME=D:\soft\apache-maven-3.9.12
2.3、追加PATH:Path=%MVN_HOME%/bin;原先的配置
3、校验
3.1、打开dos窗口,执行mvn -v
3.2、显示内容有 Apache Maven 3.9.12 表示成功node下载

1、浏览器打开 https://nodejs.org/zh-cn/download/prebuilt-binaries
2、选择 v24.12.0 (LTS)/Windows/x64/独立文件(.zip)
3、下载完成node安装

1、解压node:解压node到D:\soft\
2、配置环境变量
2.1、选择:此电脑/属性/高级系统设置/环境变量(N)../新建
2.2、添加NODE:NODE_HOME=D:\soft\node-v24.12.0-win-x64
2.3、追加PATH:Path=%NODE%;原先的配置
3、校验
3.1、打开dos窗口,执行node -v
3.2、显示内容有 v24.12.0 表示成功HBuilderX下载

1、浏览器打开 https://www.dcloud.io/hbuilderx.html
2、点击 Download for Windows
3、下载完成HBuilderX安装

1、解压HBuilderX到D:\soft\
2、点击HBuilderX\HBuilderX.exe启动wkhtmltox下载

1、浏览器打开 https://wkhtmltopdf.org/downloads.html
2、点击 7z Archive (XP/2003 or later) /64-bit
3、下载完成wkhtmltox安装
- V5.1.0新增,支持试卷导出,可选配置,需要导出试卷时使用

1、解压wkhtmltox:解压wkhtmltox到D:\soft\
2、配置环境变量
2.1、选择:此电脑/属性/高级系统设置/环境变量(N)../新建
2.2、添加WK:WK_HOME=D:\soft\wkhtmltox
2.3、追加PATH:Path=%WK_HOME%;原先的配置
3、校验
3.1、打开dos窗口,执行wkhtmltopdf -V
3.2、显示内容有 wkhtmltopdf 0.12.6 表示成功源码下载

1、浏览器打开 https://gitee.com/qq1247/xmky-exam
2、选择 克隆/下载/下载ZIP
3、下载完成后端程序启动




1、解压源码:解压到D:\soft\
2、导入考试库
2.1、打开dos窗口
2.2、连接mysql服务端:mysql -uroot -proot
2.3、创建考试库,指定编码为utf-8:create database xmky_exam default character set utf8 collate utf8_general_ci;
2.4、和mysql服务端通信使用utf-8编码:set names utf8;
2.5、进入考试库:use xmky_exam;
2.6、导入初始脚本:source D:\soft\xmky-exam-master\db\mysql\6.0.0.sql
2.7、退出mysql:exit
3、编译打包、启动服务
3.1、切换到后端目录:cd D:\soft\xmky-exam-master\src
3.2、打包(使用国内镜像):mvn clean package
3.3、切换到打包文件目录:cd ./sys-web/target/
3.4、dos窗口使用UTF-8编码输出:chcp 65001
3.5、启动程序:java -Dfile.encoding=UTF-8 -jar xmky-exam-6.0.0.jar
4、校验
4.1、显示内容有 Tomcat started on port 8000 表示成功PC端程序启动


1、编译打包
1.1、打开dos窗口
1.2、切换到h5目录:cd D:\soft\xmky-exam-master\h5
1.3、npm安装(使用国内镜像源):npm install
1.4、npm打包:npm run build
2、集成到后端(为简化使用,自带了类似nginx的功能)
2.2、剪切 h5\dist 到 src\sys-web\target 下,并重命名为h5:move .\dist D:\soft\xmky-exam-master\src\sys-web\target\h5
2.2、编辑src\sys-web\target\h5\config.js,修改ip为192.168.0.86
2.3、保存文件
3、校验
3.1、浏览器打开 http://192.168.0.86:8000
3.2、输入账号密码登录(admin/111111)
3.3、能进入首页表示成功移动端程序启动





1、编译打包
1.1、拖拽m文件夹到HBuilderX
1.2、在项目根目录(m文件夹)右键/使用命令行窗口打开所在目录(U)/使用外部终端(E)/npm install
1.3、在项目根目录(m文件夹)左键/发行(U)/网站-PC Web或手机H5(仅适用于uni-app)(H)/发行(P)
1.4、如果是第一次打开HBuilderX,输入账号密码,点击登录(没有的需要先注册)
2、集成到后端(为简化使用,自带了类似nginx的功能)
2.1、剪切 m\unpackage\dist\build\web 到 src/sys-web/target 下,并重命名为m:move .\unpackage\dist\build\web D:\soft\xmky-exam-master\src\sys-web\target\m
2.2、编辑src/sys-web/target/m/static/config.js,修改ip为192.168.0.86
2.3、保存文件
3、校验
3.1、浏览器打开,按F12打开调试模式,选择响应式设计模式(移动端模式),选择一个手机型号
3.2、输入账号密码登录(admin/111111)
3.3、能进入首页表示成功docker安装
在线安装
#!/bin/bash
# 外置前端配置文件,方便修改ip和端口
mkdir -p h5
cat > h5/config.js << 'EOF'
window.domain = {url: 'http://127.0.0.1:8000/api/',};
EOF
mkdir -p m/static
cat > m/static/config.js << 'EOF'
window.server = {BASE_URL: 'http://127.0.0.1:8000/api',};
EOF
# 生成mysql配置文件
mkdir -p mysql
cat > mysql/my.cnf << 'EOF'
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-time-zone='+8:00'
init_connect='SET NAMES utf8mb4'
[client]
default-character-set=utf8mb4
EOF
chmod 444 mysql/my.cnf
# 拷贝数据库初始化脚本到mysql目录下
wget -O ./mysql/6.0.0.sql https://gitee.com/qq1247/xmky-exam/raw/master/db/mysql/6.0.0.sql
# 生成docker-compose.yml文件
cat > docker-compose.yml << 'EOF'
# 服务名称
name: xmky-exam-server
services:
# mysql
mysql:
image: mysql:8.0.44
container_name: xmky-mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: xmky_exam
ports:
- "8306:3306"
volumes:
- ./mysql/my.cnf:/etc/my.cnf # my.cnf必须设置只读属性
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/6.0.0.sql:/docker-entrypoint-initdb.d/6.0.0.sql
restart: unless-stopped
healthcheck:
test: ["CMD", "mysql", "-uroot", "-proot", "-e", "SELECT 1;"]
interval: 5s
timeout: 5s
retries: 20
start_period: 60s
# 考试服务
exam-app:
image: 1247qq/xmky-exam:6.0.0
container_name: xmky-exam
ports:
- "8000:8000"
volumes:
- ./h5/config.js:/app/h5/config.js
- ./m/static/config.js:/app/m/static/config.js
- ./bak:/app/bak
- ./log:/app/log
environment:
- SPRING_DATASOURCE_URL=jdbc:p6spy:mysql://xmky-mysql:3306/xmky_exam?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=root
depends_on:
mysql:
condition: service_healthy
restart: unless-stopped
EOF
# 启动docker服务
docker compose up -dREM 外置前端配置文件,方便修改ip和端口
mkdir h5 && echo window.domain = {url: 'http://127.0.0.1:8000/api/',} > h5\config.js
mkdir m\static && echo window.server = {BASE_URL: 'http://127.0.0.1:8000/api',} > m\static\config.js
REM 生成mysql配置文件
mkdir mysql
echo [mysqld] > mysql\my.cnf
echo character-set-server=utf8mb4 >> mysql\my.cnf
echo collation-server=utf8mb4_unicode_ci >> mysql\my.cnf
echo default-time-zone='+8:00' >> mysql\my.cnf
echo init_connect='SET NAMES utf8mb4' >> mysql\my.cnf
echo. >> mysql\my.cnf
echo [client] >> mysql\my.cnf
echo default-character-set=utf8mb4 >> mysql\my.cnf
attrib +R mysql\my.cnf
REM 拷贝数据库初始化脚本到mysql目录下
curl -L -o mysql\6.0.0.sql https://gitee.com/qq1247/xmky-exam/raw/master/db/mysql/6.0.0.sql
REM 生成docker-compose.yml文件
echo # 服务名称 > docker-compose.yml
echo name: xmky-exam-server >> docker-compose.yml
echo services: >> docker-compose.yml
echo # mysql >> docker-compose.yml
echo mysql: >> docker-compose.yml
echo image: mysql:8.0.44 >> docker-compose.yml
echo container_name: xmky-mysql >> docker-compose.yml
echo environment: >> docker-compose.yml
echo MYSQL_ROOT_PASSWORD: root >> docker-compose.yml
echo MYSQL_DATABASE: xmky_exam >> docker-compose.yml
echo ports: >> docker-compose.yml
echo - "8306:3306" >> docker-compose.yml
echo volumes: >> docker-compose.yml
echo - ./mysql/my.cnf:/etc/my.cnf # my.cnf必须设置只读属性 >> docker-compose.yml
echo - ./mysql/data:/var/lib/mysql >> docker-compose.yml
echo - ./mysql/logs:/var/log/mysql >> docker-compose.yml
echo - ./mysql/6.0.0.sql:/docker-entrypoint-initdb.d/6.0.0.sql >> docker-compose.yml
echo restart: unless-stopped >> docker-compose.yml
echo healthcheck: >> docker-compose.yml
echo test: ["CMD", "mysql", "-uroot", "-proot", "-e", "SELECT 1;"] >> docker-compose.yml
echo interval: 5s>> docker-compose.yml
echo timeout: 5s>> docker-compose.yml
echo retries: 20>> docker-compose.yml
echo start_period: 60s>> docker-compose.yml
echo # 考试服务 >> docker-compose.yml
echo exam-app: >> docker-compose.yml
echo image: 1247qq/xmky-exam:6.0.0 >> docker-compose.yml
echo container_name: xmky-exam >> docker-compose.yml
echo ports: >> docker-compose.yml
echo - "8000:8000" >> docker-compose.yml
echo volumes: >> docker-compose.yml
echo - ./h5/config.js:/app/h5/config.js >> docker-compose.yml
echo - ./m/static/config.js:/app/m/static/config.js >> docker-compose.yml
echo - ./bak:/app/bak >> docker-compose.yml
echo - ./log:/app/log >> docker-compose.yml
echo environment: >> docker-compose.yml
echo - SPRING_DATASOURCE_URL=jdbc:p6spy:mysql://xmky-mysql:3306/xmky_exam?useUnicode=true^&characterEncoding=utf-8^&serverTimezone=GMT%%2B8^&useSSL=false^&allowPublicKeyRetrieval=true >> docker-compose.yml
echo - SPRING_DATASOURCE_USERNAME=root >> docker-compose.yml
echo - SPRING_DATASOURCE_PASSWORD=root >> docker-compose.yml
echo depends_on: >> docker-compose.yml
echo mysql: >> docker-compose.yml
echo condition: service_healthy >> docker-compose.yml
echo restart: unless-stopped >> docker-compose.yml
powershell -Command "Get-Content -Path 'docker-compose.yml' | Out-File -FilePath 'docker-compose.yml.tmp' -Encoding UTF8; If($?) { Move-Item -Force 'docker-compose.yml.tmp' 'docker-compose.yml' }"
REM 启动docker服务
docker compose up -d
pause离线安装
dockerhub连接不上,或局域网需要离线部署,请去qq群(811189776)群文件下载离线安装包
- xmky-exam-6.0.0-docker.zip,参考readMe.md文档进行安装
宝塔面板安装
注意事项
操作系统基于:ubuntu22
软件版本要求:java21、mysql8
程序文件来源一:自行编译部署,参考windows源码安装
程序文件来源二:qq群(811189776)群文件下载离线安装包(xmky-exam-6.x.x-win64.zip),提取已预编译好的程序文件
mysql安装



1、安装mysql:数据库->安装Mysql环境->mysql 8.0.36->极速安装
2、添加考试库:添加数据库->数据库名(xmky_exam)->记住用户名和密码->确定
3、导入数据:导入->从本地上传->上传->弹框中选择6.0.0.sql->开始上传->导入程序安装







1、上传文件
1.1、qq群(811189776)群文件下载离线安装包xmky-exam-6.0.0-win64.zip解压,根目录下有xmky-exam文件夹
1.2、上传文件夹到当前用户目录(文件->上传/下载->上传文件夹->选择xmky-exam文件夹->上传->开始上传)
2、修改配置文件并保存
2.1、./xmky-exam/config/application.yml
url: jdbc:p6spy:mysql://127.0.0.1:3306/xmky_exam?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true # 修改端口为3306
username: xmky_exam # mysql安装时设置的用户名
password: AL3CBb6Xj7xyRnNb # mysql安装时设置的密码
2.2、./xmky-exam./h5/config.js
url: 'http://宝塔面板ip:8000/api/'
2.3、./xmky-exam./m/static/config.js
BASE_URL: 'http://宝塔面板ip:8000/api'
3、启动后端服务
3.1、网站->Java项目->添加项目->添加JDK信息->jdk-21.0.2>安装
3.2、项目路径->选择/www/wwwroot/xmky-exam/xmky-exam-6.0.0.jar->确定->root->放行端口->确定(初次使用建议用root用户启动,因为权限问题导致启动失败,需要消耗时间去排错。)
4、校验
4.1、点击xmky-exam-6->日志管理->刷新日志->看最后几行,如果有【系统XXX启动:】,表示启动成功
4.2、浏览器打开:http://宝塔面板ip:8000,输入账号密码登录(admin/111111)wkhtmltox下载
1、浏览器打开 https://wkhtmltopdf.org/downloads.html
2、点击 Ubuntu 22.04 (jammy)/amd64
3、下载完成wkhtmltox安装
- V5.1.0新增,支持试卷导出,可选配置,需要导出试卷时使用

1、打开终端
2、安装wkhtmltopdf
cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
apt update
apt install -y xfonts-75dpi libxrender1 libfontconfig1 libx11-6 libgl1 xvfb
dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
apt --fix-broken install -y
wkhtmltopdf --version
3、安装黑体
mv /tmp/simhei.ttf /usr/share/fonts/truetype/ # simhei.ttf需从合法授权的 Windows 系统获取版本升级
提示信息
最新版本源码在:https://gitee.com/qq1247/xmky-exam
数据库脚本在db/mysql/下,命名规则:
a.b.c.sql
a:大版本,不同的a之间是否兼容,看是否有升级脚本。如4.6.0 - 5.0.0.sql表示可以从4版本升级到5版本
b:a的小版本,升级下一版需b+1。如5.2.0.sql - 5.3.0.sql,表示5.2.0版本升到5.3.0版本
c:b的bug修复版本,修复数据bug需c+1。如5.2.0 - 5.2.1.sql,表示修复5.2.0的数据bug。如果5.2.0升级到5.3.0,则直接使用5.2.0.sql - 5.3.0.sql(脚本已包含所需sql)
1、停止后端服务
2、后端、pc端、移动端编译打包后替换旧文件,重新修改配置文件
./config/application.yml,./h5/config.js,./m/static/config.js
3、按需升级数据库,不要跨版本更新
如:当前版本为5.5.0,需要升级到5.7.0,需要5.5.0.sql - 5.6.0.sql,5.6.0.sql - 5.7.0.sql
4、启动后端服务windows/linux手动安装示例
示例:5.5.0版升级到5.7.0
[程序根目录]
├── xmky-exam-5.5.0.jar
├── config/
├── application.yml
├── logo.png
├── h5/
├── assets
├── img
├── config.js
├── index.html
└── m/
├── assets
└── static/
└── config.js
├── uni_modules
├── index.html
1、下载V5.7.0版本源码到D盘并解压:https://gitee.com/qq1247/xmky-exam/repository/archive/5.7.0.zip
1.1、解压后结构为:d:\xmky-exam-5.7.0\db;d:\xmky-exam-5.7.0\h5;d:\xmky-exam-5.7.0\m;d:\xmky-exam-5.7.0\src
2、关闭java后台服务
3、备份考试库5.5.0:mysqldump -uroot -proot exam > D:\xmky-exam-5.5.0-bak.sql
3.1、5.6.0版本开始数据库名称为xmky_exam,命令为:mysqldump -uroot -proot xmky_exam > D:\xmky-exam-5.5.0-bak.sql
4、升级考试库到5.6.0:mysql -uroot -proot xmky_exam < d:\xmky-exam-5.7.0\db\mysql\5.5.0 - 5.6.0.sql
5、升级考试库到5.7.0:mysql -uroot -proot xmky_exam < d:\xmky-exam-5.7.0\db\mysql\5.6.0 - 5.7.0.sql
6、V5.7.0版本的前后端文件替换V5.5.0版本的文件
6.1、V5.7.0文件来源一:手动编译打包V5.7.0的前后端
6.2、V5.7.0文件来源二:使用qq群(811189776)群文件,xmky-exam-5.7.0-win64.zip/xmky-exam文件夹下已编译好的文件
7、后端更新配置文件:./config/application.yml (最好重新配置,因为新增的属性在旧版本不存在,会导致报错)
8、PC端更新配置文件:./h5/config.js (或者直接使用5.5.0版本的./h5/config.js覆盖)
9、移动端更新配置文件:./m/static/config.js (或者直接使用5.5.0版本的./m/static/config.js覆盖)
10、启动java后台服务:java -Dfile.encoding=UTF-8 -jar xmky-exam-5.7.0.jarwindows一键安装示例
示例:5.5.0版升级到5.7.0
视频教程
宝塔面板示例
示例:5.5.0版升级到5.6.0 





[程序根目录]
├── xmky-exam-5.5.0.jar
├── config/
├── application.yml
├── logo.png
├── h5/
├── assets
├── img
├── config.js
├── index.html
└── m/
├── assets
└── static/
└── config.js
├── uni_modules
├── index.html
1、停止服务:网站->Java项目->xmky-exam-5->停止->确定
2、备份数据库:数据库->xmky_exam->点击备份->备份数据库
3、更新数据库:数据库->xmky_exam->导入->从本地导入->5.5.0 - 5.6.0.sql->导入
4、V5.6.0版本的前后端文件替换V5.5.0版本的文件
4.1、V5.6.0版本文件来源一:手动编译打包V5.6.0的前后端文件
4.2、V5.6.0版本文件来源二:使用qq群(811189776)群文件,xmky-exam-5.6.0-win64.zip/xmky-exam文件夹下已编译好的文件
5、更新配置文件:
后端更新配置文件:./config/application.yml (最好重新配置,因为新增的属性在旧版本不存在,会导致报错)
PC端更新配置文件:./h5/config.js (或者直接使用5.5.0版本的./h5/config.js覆盖)
移动端更新配置文件:./m/static/config.js (或者直接使用5.5.0版本的./m/static/config.js覆盖)
网站配置:网站->Java项目->xmky-exam-5->设置->项目路径->xmky-exam-5.6.0.jar->保存当前配置
6、启动程序:网站->Java项目->xmky-exam-5->启动->确定