Java毕设部署避坑指南:MySQL5与MySQL8环境适配全解析
简介本资源是一套完整的基于Java开发的在线考试系统毕业设计项目面向计算机专业本科生、Java初学者及教育类系统开发者解决课程考核数字化、考试流程自动化与后台管理可视化等实际需求。压缩包共14个文件包含5个MP4演示与部署视频含项目演示、数据库设计、部署操作等、3个ZIP源码包适配MySQL 5/8双版本及原始项目、1个SQL数据库脚本、3个TXT连接配置说明、1个DOC格式数据库结构文档及1个DOCX部署文档整体95.11MB内容组织清晰、模块划分明确。已有174人学习下载资源已通过验收并可直接运行配套视频全程实操讲解覆盖从环境搭建、数据库初始化、前后端启动到功能测试全流程同时提供双版本MySQL适配方案与详细部署指引显著降低复现门槛适合课程设计参考、毕设快速落地与Java Web全栈实践。1. 别急着跑 demo先搞清你手里的到底是“MySQL 5 还是 MySQL 8”——毕业设计部署翻车第一现场我见过太多同学双击1-项目演示视频.mp4看得热血沸腾打开3-源码解压完就直奔mvn clean install结果卡在Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile或者更玄学的——登录页能打开一进考试模块就报java.sql.SQLException: Unknown system variable query_cache_size。查日志、搜百度、问群友折腾三天才发现你本地装的是 MySQL 8.0而2-mysql5的项目.zip里那套db.sql和application.properties是为 MySQL 5.7 写的连驱动类名都还是com.mysql.jdbc.Driver。这不是代码写得烂是环境错配的典型血泪现场。这套资源不是“一键运行”它是一套带版本分叉的完整交付包MySQL 5 和 MySQL 8 各自配了独立源码、独立连接配置、甚至独立的 SQL 脚本。它适合谁适合正在赶毕设 deadline 的 Java 初学者也适合需要快速搭建教学演示环境的某高校实验室导师——但前提是你得先看清自己手里拿的是哪条分支再决定从哪个 zip 开始解压。装错版本后面所有配置都是无用功。2. 环境清单与版本对齐Java、MySQL、Tomcat、Maven 四件套怎么选才不踩坑这套系统不是“Java 8 通吃”也不是“MySQL 任意版都能连”。它对底层环境有明确的隐性依赖这些信息散落在项目部署文档.docx的角落和2-数据库连接-mysql5.txt这类小文件里。我把它全扒出来按实际部署顺序重新梳理并标出每个组件的最低可用版本和推荐稳定版本——不是官网说能用就行是这套代码真正在1-项目演示视频.mp4里跑通的版本。2.1 Java 版本必须用 JDK 8且不能是 OpenJDK 的某些魔改版项目源码中大量使用了java.time.LocalDate、Optional等 JDK 8 新特性pom.xml里maven.compiler.source和maven.compiler.target明确设为1.8。但关键陷阱在于某些 Linux 发行版预装的 OpenJDK如 Ubuntu 22.04 自带的openjdk-11-jdk虽然兼容语法却会在 Tomcat 启动时抛出java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter——因为 JAXB 在 JDK 11 中被移除了。而本项目pom.xml并未显式引入jaxb-api依赖。提示必须用 Oracle JDK 8u202 或 Adoptium Temurin JDK 8u362LTS。验证命令java -version # 正确输出示例 # openjdk version 1.8.0_362 # OpenJDK Runtime Environment (Temurin)(build 1.8.0_362-b09) # OpenJDK 64-Bit Server VM (Temurin)(build 25.362-b09, mixed mode)2.2 MySQL 版本两条平行宇宙选错即崩盘资源包里明晃晃放着2-mysql5的项目.zip和3-mysql8的项目.zip这不是备选是强制选择项。区别远不止驱动版本对比项MySQL 5 分支2-mysql5的项目.zipMySQL 8 分支3-mysql8的项目.zipJDBC 驱动类名com.mysql.jdbc.Drivercom.mysql.cj.jdbc.DriverURL 参数?useSSLfalseserverTimezoneUTC?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue默认认证插件mysql_native_passwordcaching_sha2_password需手动降级或配置SQL 脚本兼容性db.sql中含TYPEInnoDBMySQL 5 语法db.sql中已改为ENGINEInnoDBMySQL 8 语法注意1-部署文档.docx里没写清楚这点但2-数据库连接-mysql5.txt和2-数据库连接-mysql8.txt两个文本文件就是你的版本说明书。别跳过它们。2.3 Tomcat 版本8.5.x 是黄金交点别碰 9.x 或 10.x项目用的是传统 Servlet 3.1 规范web.xml中有servlet显式声明且未使用 Jakarta EE 命名空间如jakarta.servlet.*。Tomcat 9.0.x 虽然兼容 Servlet 4.0但默认启用了一些安全策略会导致Filter初始化失败Tomcat 10.x 已全面迁移到jakarta.*包名直接报ClassNotFoundException: javax.servlet.Filter。实测通过的是Tomcat 8.5.94最新 8.5.x LTS 版。验证方式解压后检查conf/catalina.properties确认server.infoApache Tomcat/8.5.94。2.4 Maven 版本3.6.3 是底线3.8.6 是稳态pom.xml中maven-compiler-plugin版本为3.8.1该插件在 Maven 3.6.0 才完全支持。但 Maven 3.9.x 引入了 stricter dependency resolution会因本项目中spring-webmvc和spring-context版本不一致均为5.2.12.RELEASE但传递依赖冲突而报Could not resolve dependencies。实测最顺的是Maven 3.8.6它既满足插件要求又对依赖收敛足够宽容。安装建议Linux 下用 SDKMAN! 管理多版本sdk install java 8.0.362-tem sdk install maven 3.8.6 sdk use java 8.0.362-tem sdk use maven 3.8.63. 源码编译与 WAR 包生成从解压到 target 目录的每一步都不能跳拿到3-源码文件夹后别急着mvn package。这个目录下其实混着三套代码1-源项目.zip原始未适配版、2-mysql5的项目.zip、3-mysql8的项目.zip。你必须先做一次“源码手术”再编译。否则mvn compile会因src/main/resources/jdbc.properties里残留的 MySQL 5 配置导致后续连接失败。3.1 第一步解压并清理冗余源码只留一条主干# 进入 3-源码 目录 cd /path/to/3-源码 # 删除原始源码它没做任何数据库适配纯干扰项 rm -rf 1-源项目 # 解压你选定的分支以 MySQL 8 为例 unzip 3-mysql8的项目.zip -d mysql8-project # 或解压 MySQL 5 分支 # unzip 2-mysql5的项目.zip -d mysql5-project # 重命名为你将要工作的目录避免路径混淆 mv mysql8-project exam-system3.2 第二步校验并修正 JDBC 配置文件进入exam-system/src/main/resources/找到jdbc.properties。这是整个系统数据库连接的命门。不同分支的文件内容差异极大MySQL 5 分支中应为jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/exam_db?useSSLfalseserverTimezoneUTC jdbc.usernameroot jdbc.password123456MySQL 8 分支中必须是jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/exam_db?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue jdbc.usernameroot jdbc.password123456参数说明allowPublicKeyRetrievaltrue是 MySQL 8.0.21 强制要求否则报Public Key Retrieval is not allowedserverTimezoneAsia/Shanghai必须显式指定否则java.time.LocalDateTime插入数据库时区错乱考试时间全偏 8 小时useSSLfalse是开发环境简化配置生产环境需配 SSL 证书但本资源未提供故保持 false。3.3 第三步执行 Maven 编译重点观察依赖树cd /path/to/exam-system mvn clean compile -X 21 | grep -E (Downloading|Downloaded|BUILD SUCCESS|ERROR)加-X是为了看详细日志。重点关注两处是否下载了mysql-connector-java:8.0.28MySQL 8 分支或mysql:mysql-connector-java:5.1.47MySQL 5 分支是否出现org.springframework:spring-webmvc:jar:5.2.12.RELEASE和org.springframework:spring-context:jar:5.2.12.RELEASE的版本一致性警告。如果看到spring-webmvc是5.2.12而spring-context是5.1.9说明pom.xml里dependencyManagement没生效需手动在pom.xml的dependencies外层添加dependencyManagement块本资源pom.xml中已有但可能被注释掉dependencyManagement dependencies dependency groupIdorg.springframework/groupId artifactIdspring-framework-bom/artifactId version5.2.12.RELEASE/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement3.4 第四步生成 WAR 包并校验结构mvn clean package -Dmaven.test.skiptrue成功后target/目录下应生成exam-system.war。用jar -tf target/exam-system.war | head -20查看前 20 行确认关键结构WEB-INF/web.xml存在Servlet 3.1 标准WEB-INF/classes/jdbc.properties存在且内容已更新WEB-INF/lib/mysql-connector-java-8.0.28.jarMySQL 8或mysql-connector-java-5.1.47.jarMySQL 5存在WEB-INF/lib/spring-webmvc-5.2.12.RELEASE.jar存在。避坑若target/下只有exam-system文件夹无.war说明pom.xml中packaging是jar而非war。打开pom.xml确认首屏有packagingwar/packaging若没有手动添加在modelVersion下方。4. 数据库初始化与 Tomcat 部署从空库到首页可访问的完整链路WAR 包有了Tomcat 装好了但直接丢进webapps/目录十有八九首页报 404 或 500。原因很简单数据库没建、表没导、用户权限没开。这一节我们走一遍从mysql -u root -p到http://localhost:8080/exam-system/login.jsp的真实路径。4.1 创建数据库与用户用脚本比手动敲命令更可靠资源包里4-sql/db.sql是核心数据脚本但它不包含 CREATE DATABASE 语句。你得先手动建库再导入。更稳妥的做法是写一个初始化脚本# 创建 init-db.shLinux/macOS或 init-db.batWindows # 内容如下MySQL 8 示例 mysql -u root -p EOF CREATE DATABASE IF NOT EXISTS exam_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER exam_userlocalhost IDENTIFIED WITH caching_sha2_password BY exam123; GRANT ALL PRIVILEGES ON exam_db.* TO exam_userlocalhost; FLUSH PRIVILEGES; SOURCE /path/to/4-sql/db.sql; EOF为什么用caching_sha2_passwordMySQL 8 默认认证插件exam_user用户必须匹配否则jdbc.properties里即使密码正确也会报Access denied for user。若你坚持用mysql_native_password比如本地 MySQL 8 是从 5.7 升级而来则创建用户时改为CREATE USER exam_userlocalhost IDENTIFIED WITH mysql_native_password BY exam123;4.2 修改jdbc.properties为实际数据库凭据上一步创建了用户exam_user密码exam123现在回到exam-system/src/main/resources/jdbc.properties把root/123456换成新凭据jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/exam_db?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue jdbc.usernameexam_user jdbc.passwordexam123重要改完必须重新mvn clean packagetarget/exam-system.war里的jdbc.properties是编译时打包进去的改源码不重新打包等于白改。4.3 部署 WAR 包到 Tomcat别信自动解压手动控制更稳Tomcat 的autoDeploy有时会因 WAR 包名含中文或空格失败。最佳实践是# 停止 Tomcat $CATALINA_HOME/bin/shutdown.sh # 清空 webapps 下旧包 rm -rf $CATALINA_HOME/webapps/exam-system* rm -rf $CATALINA_HOME/webapps/ROOT # 复制新 WAR 包注意去掉版本号让上下文路径为 /exam-system cp /path/to/exam-system/target/exam-system.war $CATALINA_HOME/webapps/exam-system.war # 启动 Tomcat $CATALINA_HOME/bin/startup.sh为什么叫exam-system.war而不是exam-system-1.0.warTomcat 会把xxx.war解压为xxx目录上下文路径即/xxx。叫exam-system.war访问地址就是http://localhost:8080/exam-system/和项目部署文档.docx里写的完全一致。若叫exam-system-1.0.war路径会变成/exam-system-1.0所有链接 404。4.4 验证 Tomcat 日志5 秒内定位启动成败启动后立刻看$CATALINA_HOME/logs/catalina.outtail -f $CATALINA_HOME/logs/catalina.out | grep -E (exam-system|ERROR|Exception|started)成功标志INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/tomcat/webapps/exam-system.war]INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/webapps/exam-system.war] has finished in [X] msINFO [main] org.apache.coyote.http11.Http11Processor.pause Pausing ProtocolHandler [http-nio-8080]表示服务已监听失败常见信号Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver→ 驱动 jar 没打进 WAR检查pom.xml中mysql-connector-java依赖 scope 是否为compile不能是testjava.sql.SQLException: Access denied for user exam_userlocalhost→ 用户密码或认证插件不匹配org.springframework.beans.factory.BeanCreationException: Error creating bean with name sqlSessionFactory→db.sql导入失败检查数据库字符集是否为utf8mb4。避坑 / 常见问题 / 排查现象 1首页能打开但点击“开始考试”报 404URL 变成/exam-system/exam/startExam原因web.xml中servlet-mapping的url-pattern写成了/exam/*但前端 JSP 里用的是相对路径a hrefexam/startExam导致二次拼接。解决打开exam-system/src/main/webapp/WEB-INF/web.xml找到servlet-mapping确认url-pattern是*.do或/exam/*然后统一前端链接为a href${pageContext.request.contextPath}/exam/startExam。现象 2登录后跳转到http://localhost:8080/exam-system/login.jsp?error用户名密码明明正确原因db.sql中t_user表的password字段是 MD5 加密存储但1-项目演示视频.mp4里演示用的账号密码是admin/123456其 MD5 值为e10adc3949ba59abbe56e057f20f883e。若你导入db.sql后没手动插入这条记录或插入时用了明文就会失败。解决执行 SQLINSERT INTO t_user (username, password, role, status) VALUES (admin, e10adc3949ba59abbe56e057f20f883e, admin, 1);现象 3Tomcat 启动后http://localhost:8080/exam-system/返回空白页查看浏览器开发者工具 Network 标签发现login.jsp返回状态 200 但 Response 为空原因JSP 编译失败work/Catalina/localhost/exam-system/org/apache/jsp/login_jsp.java编译报错常见于pageEncoding不匹配。解决打开exam-system/src/main/webapp/login.jsp确认首行是% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%并确保文件本身保存为 UTF-8 编码Notepad 可查。5. 系统功能验证与边界测试不只是能登录更要考得起来、交得上去部署完成 ≠ 系统可用。很多同学卡在“能登录但进不了考试”或“能答题但提交后没分数”这往往不是部署问题而是业务逻辑的隐性约束没满足。这一节我们用一套最小闭环测试法覆盖从教师出题、学生考试到成绩查询的全链路每一步都给出可验证的预期结果和排查入口。5.1 教师端创建考试并发布验证题库与试卷绑定用admin/123456登录后进入【教师管理】→【试题管理】。此时页面应显示“暂无试题”。点击【添加试题】填入题干Java中String类是可变的吗选项 A是B否C只在JDK8之前可变D取决于JVM版本正确答案B难度简单点击【保存】。刷新页面应看到新题出现在列表中状态为“已启用”。验证点打开数据库执行SELECT * FROM t_question WHERE content LIKE %String类是可变%;应返回一条记录status 1difficulty 1。接着进入【试卷管理】→【添加试卷】输入试卷名称Java基础测试从题库中勾选刚添加的题目点击【生成试卷】。成功后进入【考试安排】→【添加考试】选择该试卷设置考试时间为2024-06-01 09:00:00到2024-06-01 09:30:00点击【发布】。关键检查数据库t_exam表中应有新记录status 1已发布t_exam_paper关联表中应有试卷 ID 与考试 ID 的映射。5.2 学生端参加考试、提交试卷验证成绩入库新开一个浏览器或隐身窗口访问http://localhost:8080/exam-system/login.jsp用学生账号登录db.sql中预置了student/123456。登录后首页应显示“待参加考试”点击【立即考试】进入答题页。答题页应加载出试卷名称、倒计时、所有题目及选项。作答后点击【提交试卷】页面跳转至result.jsp显示“考试结束得分100”。验证点查数据库t_exam_record表SELECT score, status FROM t_exam_record WHERE student_id (SELECT id FROM t_user WHERE username student) ORDER BY create_time DESC LIMIT 1;应返回score 100,status 2已阅卷。若score为0或NULL说明t_exam_record的score字段未被更新。检查ExamService.java中submitExam()方法确认调用了examRecordMapper.updateScore()且 SQLUPDATE t_exam_record SET score #{score} WHERE id #{id}执行成功。5.3 成绩查询教师端查看明细验证关联数据完整性教师账号回到【成绩管理】→【成绩查询】选择刚发布的考试应看到student的成绩为100。点击【详情】应列出每道题的作答情况题干、学生选择、正确答案、是否答对。验证点t_exam_record_detail表应有对应记录question_id、student_answer、correct_answer、is_correct字段均非空。若详情页报错或字段为空检查ExamRecordDetailMapper.xml中的 SQLselect idselectByRecordId resultTypeExamRecordDetail SELECT erd.*, q.content, q.option_a, q.option_b, q.option_c, q.option_d FROM t_exam_record_detail erd LEFT JOIN t_question q ON erd.question_id q.id WHERE erd.record_id #{recordId} /select确保LEFT JOIN未写成INNER JOIN否则题目被删除后详情页会查不到数据。5.4 边界测试模拟高并发与异常操作毕业设计验收常被问“如果 100 个学生同时交卷系统会卡死吗” 这套系统用的是单机 Tomcat MySQL没做分布式锁但做了基本防重提交试卷时ExamController.submitExam()方法开头有if (examRecord.getStatus() ! 0) { // 0未开始, 1进行中, 2已阅卷 return redirect:/exam/alreadySubmitted.jsp; }数据库t_exam_record表有唯一索引UNIQUE KEY uk_student_exam (student_id, exam_id)防止重复插入。测试方法用curl模拟两次提交# 第一次提交成功 curl -X POST http://localhost:8080/exam-system/exam/submit -d recordId1 -d answers2 # 第二次提交同一 recordId应跳转到 alreadySubmitted.jsp curl -I http://localhost:8080/exam-system/exam/submit?recordId1answers2 # 查看响应头HTTP/1.1 302 FoundLocation: /exam/alreadySubmitted.jsp若第二次返回 200 且score被覆盖说明防重失效需检查uk_student_exam索引是否存在SHOW INDEX FROM t_exam_record WHERE Key_name uk_student_exam;6. 部署后必做的五件事从“能跑”到“稳跑”的最后一道防线系统首页打开了登录成功了甚至考了一套题分数也出来了——这时候很多人就关掉终端长舒一口气。但作为部署过二十多个类似系统的运维我告诉你真正的考验从这一刻才开始。下面这五件事每一件都对应一个线上环境的真实雷区漏掉任何一项都可能在答辩前夜让你凌晨三点还在重装 MySQL。6.1 检查 Tomcat 的 JVM 内存参数别让 OutOfMemoryError 毁掉演示Tomcat 默认启动参数极简-Xms和-Xmx都是 256MB。而本系统加载 Spring 上下文、MyBatis 映射、静态资源后内存占用轻松突破 512MB。1-项目演示视频.mp4里演示流畅是因为录制者提前调大了堆内存。操作编辑$CATALINA_HOME/bin/setenv.shLinux/macOS或setenv.batWindows添加export JAVA_OPTS-Xms512m -Xmx1024m -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512m -Dfile.encodingUTF-8Windows 下用set JAVA_OPTS-Xms512m -Xmx1024m -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512m -Dfile.encodingUTF-8验证启动后执行ps aux | grep tomcat | grep -o Xmx[0-9]\m # 应输出 Xmx1024m6.2 验证静态资源路径CSS/JS 不加载可能是 contextPath 没配对exam-system/src/main/webapp/login.jsp里引用 CSS 的写法是link relstylesheet typetext/css hrefcss/style.css这是相对路径依赖ServletContext.getContextPath()。但如果 Tomcat 的server.xml中Host配置了appBasewebapps而你把 WAR 包放在webapps/ROOT下上下文路径就是/hrefcss/style.css会解析为/css/style.css但实际资源在/ROOT/css/404。解决统一用${pageContext.request.contextPath}link relstylesheet typetext/css href${pageContext.request.contextPath}/css/style.css并确认web.xml中display-name是exam-system而非ROOT。6.3 备份数据库与 WAR 包你的“后悔药”就藏在这两个文件里答辩前最怕什么手抖删库或改错配置导致无法回滚。我的习惯是每次成功部署后立刻执行# 备份数据库MySQL 8 mysqldump -u exam_user -pexam123 --databases exam_db /backup/exam_db_$(date %Y%m%d_%H%M%S).sql # 备份 WAR 包 cp $CATALINA_HOME/webapps/exam-system.war /backup/exam-system_$(date %Y%m%d_%H%M%S).war为什么不用git commit因为pom.xml和jdbc.properties里含敏感信息密码git会泄露。备份文件存本地/backup/答辩当天 U 盘带走比任何云同步都可靠。6.4 检查日志轮转别让 catalina.out 胀成 2GB 的黑洞Tomcat 默认不轮转日志catalina.out会无限追加。跑一周后文件大小超 1GBvim打不开grep卡死排查问题变成体力活。操作编辑$CATALINA_HOME/conf/logging.properties找到1catalina.org.apache.juli.AsyncFileHandler.maxFileSize 10485760 1catalina.org.apache.juli.AsyncFileHandler.maxBackupIndex 5把maxFileSize设为1048576010MBmaxBackupIndex设为5即保留 5 个 10MB 的历史日志。6.5 模拟断电重启验证 Tomcat 自启与数据库恢复能力关机重启后Tomcat 是否自动拉起MySQL 是否正常启动exam-system是否随 Tomcat 自动部署这才是生产级可用的标志。Linux 下设置 Tomcat 自启systemdsudo tee /etc/systemd/system/tomcat.service EOF [Unit] DescriptionApache Tomcat Web Application Container Afternetwork.target [Service] Typeforking EnvironmentJAVA_HOME/opt/java/jdk8 EnvironmentCATALINA_HOME/opt/tomcat EnvironmentCATALINA_BASE/opt/tomcat ExecStart/opt/tomcat/bin/startup.sh ExecStop/opt/tomcat/bin/shutdown.sh Usertomcat Grouptomcat Restartalways [Install] WantedBymulti-user.target EOF sudo systemctl daemon-reload sudo systemctl enable tomcatMySQL 自启Ubuntusudo systemctl enable mysql从那以后我每次部署完一个 Java Web 系统都强制走一遍这五件事调内存、修路径、打备份、设日志、试重启。不是仪式感是吃过太多亏后的肌肉记忆——毕竟答辩现场的每一秒都值得用最笨的办法去守护。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

深入Promise异步编程:状态机、链式调用与并发控制实战

深入Promise异步编程:状态机、链式调用与并发控制实战

1. 聊聊Promise这个老朋友Promise,一个在前端面试中永远绕不开的话题。但比起面试官问"Promise是什么、怎么用、有哪些方法",真正让很多开发者在实际开发中犯错的,往往是那些看似基础、实则细节满满的地方——比如resolve和reject的执行时机、链式调用里return到底该…

2026/10/18 9:28:29 阅读更多 →
校园网安全体系课程设计:基于eNSP的P-WPDRRC模型与防火墙配置实践

校园网安全体系课程设计:基于eNSP的P-WPDRRC模型与防火墙配置实践

简介:面向网络安全课程设计与校园网安全实践,这份资料以巢湖学院校园网为背景,完整给出安全体系的设计思路与eNSP仿真实现方案。报告共47页,内容从课题背景、国内外现状、需求分析到P-WPDRRC安全模型的建立,再落到防火…

2026/10/18 9:28:29 阅读更多 →
iOS代码混淆实战:从方案选型到踩坑排查全记录

iOS代码混淆实战:从方案选型到踩坑排查全记录

提到iOS代码混淆,很多人的第一反应是:不就是改个名、加个密吗?等自己真上手就会发现,这东西从入门到放弃往往只隔着一个加急提审的周末。我之前接过一个模拟项目X,上线前夜发现用class-dump一拉,所有类名方…

2026/10/18 9:28:29 阅读更多 →

最新新闻

红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

简介:这是一套面向党政部门的工作总结PPT模板,整体采用红色党建风格,视觉庄重且富有感染力,适合年终总结、阶段汇报、主题教育展示等场合。模板内置完整汇报逻辑,共分为工作目标与背景、工作成果与亮点、挑战与解决方案…

2026/10/18 15:49:14 阅读更多 →
信息化教学设计PPT模板实操指南:拆结构、改版式、避雷区

信息化教学设计PPT模板实操指南:拆结构、改版式、避雷区

简介:一套面向教师和教学设计人员的信息化教学设计高端PPT模板,以教学分析、教学设计、教学过程、教学反思为主线,覆盖课程结构、学情分析、教学重难点等关键环节,旨在帮助教师快速搭建符合现代教育理念的课件框架,减少…

2026/10/18 15:49:14 阅读更多 →
电力AI技术栈全解析:从数据接入到模型部署的实战指南

电力AI技术栈全解析:从数据接入到模型部署的实战指南

1. 电力遇上AI:为什么数据技术栈决定项目天花板做了这么多年电力行业的数据项目,我越来越确信一件事:电力系统的智能化转型,卡点从来不在算法,而在数据技术栈的搭建上。很多人一听到“电力|数据|ai技术栈”这个组合&am…

2026/10/18 15:49:14 阅读更多 →
C#上位机集成YOLO实现产线视觉检测:从ONNX部署到PLC联调的全流程实践

C#上位机集成YOLO实现产线视觉检测:从ONNX部署到PLC联调的全流程实践

几个月前,我们团队接手了一个产线级视觉检测项目,需求本身不复杂:C#上位机控制工业相机拍照,调用YOLO模型做缺陷检测,再把结果同步给PLC实现自动分拣。从实验室里跑通Demo到产线上稳定运行,这中间踩的坑远比…

2026/10/18 15:49:14 阅读更多 →
信息化教学设计高端模板:从框架到视觉的实战指南

信息化教学设计高端模板:从框架到视觉的实战指南

简介:信息化教学设计高端模板是一份面向教师、教研员及师范生的演示文稿,围绕教学分析、教学设计、教学过程、教学反思四个环节搭建完整备课框架。模板将课程结构、教学内容、教学目标、教学重点、学情分析与教学难点系统梳理,帮助使用者在课…

2026/10/18 15:49:14 阅读更多 →
猫抓资源嗅探扩展:网页视频怎么保存,M3U8 分片如何合并下载

猫抓资源嗅探扩展:网页视频怎么保存,M3U8 分片如何合并下载

猫抓资源嗅探扩展:网页视频怎么保存,M3U8 分片如何合并下载 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff0…

2026/10/18 15:48:14 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →