新闻详情

新闻详情

首页 / 资讯中心 / 详情

Java环境搭建:JDK、Maven、MySQL、Tomcat、IDEA五件套

发布时间:2026/9/30 12:39:32来源:尧图网络
Java环境搭建:JDK、Maven、MySQL、Tomcat、IDEA五件套
每次带新人最先卡住我的都不是代码怎么写而是环境搭不起来。IDEA装完打不开项目、JDK环境变量配了三遍命令提示符还是提示不是内部或外部命令、Maven下个依赖慢得像拨号上网、MySQL装完root密码忘了、Tomcat双击窗口一闪就没了。JDK、Maven、MySQL、Tomcat、IDEA这五件套几乎是每个Java Web开发的起跑线但它偏偏没有一个官方打包好的一键安装全靠自己拼。这篇就把这套环境从零搭到能跑通一个Web项目的全过程拆开讲包括版本怎么选、目录怎么规划、每一步背后的原因、以及我在实际带人过程中反复见到的坑。不管你是刚学Java的学生还是接手一台新电脑要重装环境的老手都能照着走一遍。1. 先把版本选型和目录规划定下来环境搭建最容易翻车的地方从来不是某个软件装不上而是一堆版本互相不兼容。我见过太多次JDK装的最新版、Tomcat下的最新版、项目里的依赖又是三年前的最后启动报一堆名字看不懂的异常。所以动手之前先把版本和目录这两件事敲定后面能省掉至少一半的返工。1.1 这五件套各自扮演什么角色先用一个生活化的比喻把这套组合讲清楚。JDK是发动机代码最终要靠它编译和运行Maven是采购员加仓库负责把项目需要的第三方jar包按需下载、统一管理版本MySQL是账本业务数据都存这里Tomcat是货架把写好的Web应用摆上去对外提供服务IDEA是工作台前面四样东西在它里面被串起来写代码、跑测试、打包、启动服务都在同一个界面完成。理解了这个分工你就明白为什么它们的版本必须互相照顾。IDEA要调用JDK来编译Maven要跑在JDK之上Tomcat本身也是Java写的、运行时依赖JDK项目通过JDBC驱动连MySQL。任何一环的版本超出另一环的支持范围链条就断了。这也是为什么我不建议每个软件都装最新版——最新不等于最稳。1.2 一套经得起考验的版本组合下面这套组合是我在多个项目、多台机器上反复用过的适合学习、做课程设计、开发中小型Web项目组件推荐版本关键说明JDK17LTS或 8老项目锁死JDK8新项目直接用17Maven3.9.x3.9要求运行在JDK8及以上MySQL8.0.x默认字符集utf8mb4认证插件有变化Tomcat9.0.x面向javax.servlet兼容面最广IDEA2023.x 及以上社区版免费旗舰版需商业授权这里必须单独讲一个坑Tomcat 10 开始把Servlet API的包名从javax.servlet改成了jakarta.servlet。这意味着所有基于javax的老项目、以及Spring Boot 2.x的工程放在Tomcat 10或11上会直接报ClassNotFoundException。反过来Spring Boot 3.x用的是jakarta扔到Tomcat 9上也不行。所以新手阶段我更推荐Tomcat 9生态兼容性最好网上教程也基本都是围绕它写的。JDK同理。JDK 8依然是很多企业项目的基线JDK 11和17是LTS长期支持版JDK 21也是LTS。非LTS版本比如JDK 9到16之间的奇数版本生命周期短只适合尝鲜。如果你只是想学Servlet/JSPJDK 8加Tomcat 9是最稳的组合如果打算跟着新教程学Spring Boot 3那就JDK 17加Tomcat 9用内嵌或外置都行注意API包名。1.3 安装顺序和统一目录规划顺序上建议按JDK → Maven → MySQL → Tomcat → IDEA来。原因是后面几个都依赖JDKIDEA又要在启动后配置前四者的路径放在最后装可以一次性绑好。目录规划这件事被太多人忽略。默认安装路径要么在C盘Program Files要么带一堆空格和中文Maven和Tomcat对带空格的路径偶尔会出问题。我的习惯是在非系统盘建一个统一的开发目录D:\dev\ ├── jdk-17\ ├── apache-maven-3.9.6\ ├── apache-tomcat-9.0.85\ ├── mysql-8.0.36\ ├── maven-repo\ (Maven本地仓库) └── workspace\ (IDEA项目工作区)好处有三个一是路径短、无空格无中文命令行操作和脚本引用都不容易出错二是以后换电脑直接整盘拷贝环境基本能复用三是卸载或重装时不用去系统目录里翻残留。注意版本号最好保留在目录名里这样你同时装JDK 8和17时不会搞混。注意安装路径里绝对不要出现中文和空格。这不是迷信Maven在解析本地仓库路径、Tomcat在加载web应用时都可能因此报错而且报错信息往往不指向真正原因排查起来很费时间。2. JDK的安装与环境变量配置JDK是整套环境的地基它配不好后面Maven和Tomcat全是白搭。这一节我把下载、安装、环境变量、验证四步讲透尤其是环境变量部分很多教程只给配置项不讲原理导致一换机器就不会配。2.1 下载渠道与版本选择JDK现在有多个发行版可选功能核心都来自同一个开源项目区别在打包方和维护策略。常见的有Eclipse Temurin原AdoptOpenJDK、Amazon Corretto、Azul Zulu、以及各厂商自己的发行版。对学习用户来说随便选一个LTS版本即可我平时用得比较多的是Temurin的17。下载时认准官网的LTS标签别去不知名的小站点下JDK是要在系统级别运行的东西来源不可靠风险很大。Windows下会有两种安装包.exe安装程序和.zip免安装包。.exe省事会自动帮你配一部分环境变量.zip更干净解压即用适合我这种喜欢自己掌控目录的人。2.2 安装过程中的关键选择用.exe安装时会问你是否安装公共JRE。从JDK 11开始官方已经不单独提供JRE了JDK本身就包含了运行环境所以这一步直接跳过即可。安装路径改成前面规划好的D:\dev\jdk-17。用.zip的话解压后进目录看一眼正常应该看到bin、conf、include、jmods、lib这几个文件夹。如果解压出来发现多套了一层同名目录比如D:\dev\jdk-17\jdk-17\bin那就要把内层提到外面来或者配置环境变量时把路径写全。这个多套一层的现象在解压时非常常见也是环境变量配了没用的高频原因之一。2.3 JAVA_HOME、Path、CLASSPATH到底怎么配Windows下配JDK环境变量核心是三个JAVA_HOME、Path、CLASSPATH。很多人照着教程配完能用但不知道每个是干嘛的我这里说清楚。JAVA_HOME是一个自定义变量值就是JDK的根目录D:\dev\jdk-17。它本身对java命令没直接影响但Maven、Tomcat、IDEA以及大量构建脚本都会去读这个变量来定位JDK。所以哪怕你只配Path也能跑javaJAVA_HOME依然必须配。Path决定了命令提示符能在哪些目录里找可执行文件。你需要新增一项%JAVA_HOME%\bin这样在任意目录敲java、javac都能找到。CLASSPATH是告诉JVM去哪里找.class文件和jar包。JDK 5以后这个变量其实可以不配JVM有默认值。但很多老教程还在教你配一堆.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar如果你跟着配了反而可能因为覆盖默认值引发奇怪问题。我的建议是直接不配除非某个老工具明确要求。具体操作步骤打开此电脑右键属性进入高级系统设置点环境变量。在系统变量里点新建变量名JAVA_HOME变量值D:\dev\jdk-17。找到系统变量里的Path点编辑新增一行%JAVA_HOME%\bin然后把它上移到靠前位置。一路确定保存。提示Path的顺序是有意义的。Windows会按顺序查找如果前面已经有别的目录里存在同名可执行文件就会优先用那个。我遇到过一次系统里装了另一个软件的java.exe结果java -version显示的版本和JAVA_HOME指向的完全对不上把%JAVA_HOME%\bin上移后就正常了。2.4 验证方式和失败排查思路配置完成后一定要新开一个命令提示符窗口已经开着的窗口读的还是旧的环境变量。然后执行java -version javac -version echo %JAVA_HOME%正常应该看到版本号比如java version 17.0.x并且javac也能输出版本。如果java能用但javac提示找不到说明%JAVA_HOME%\bin没进Path或者Path里的路径写错了如果两个都找不到多半是JAVA_HOME值写错或者目录多套了一层。还有一种情况java -version输出的版本和你期望的不一样。这时候用where java命令看看系统里到底有几个java.exe通常会暴露多个版本共存的问题。理清哪个在后面、哪个在前再调整Path顺序即可。3. Maven安装与本地仓库、镜像加速Maven是这套环境里最容易被跳过原理直接抄配置的一环。很多人settings.xml配了阿里云镜像但不知道为什么要配本地仓库路径改了但不知道改了之后IDEA为什么还在往C盘下东西。这节把Maven的作用、安装、配置和与IDEA的绑定讲清楚。3.1 Maven到底是干嘛的一句话Maven是一个项目构建和依赖管理工具。在它出现之前项目要用的jar包得手动下载、手动放进lib目录几个人协作时版本还经常对不上。Maven用一份pom.xml声明项目需要哪些依赖、什么版本剩下的事它自动完成——去中央仓库下载、放进本地仓库、按依赖关系解析、编译、测试、打包。它还能统一项目的构建流程。mvn clean package这条命令就能完成清理加打包换台机器只要有Maven结果都一样。这也是为什么几乎所有Java项目模板都基于Maven或Gradle。3.2 下载解压与MAVEN_HOME配置从Apache官网下载apache-maven-3.9.x-bin.zip注意选-bin结尾的二进制包不是-src源码包。解压到D:\dev\apache-maven-3.9.6检查目录里有bin、conf、lib三个主要文件夹。环境变量配置和JDK类似新建系统变量MAVEN_HOME值D:\dev\apache-maven-3.9.6。在Path里新增%MAVEN_HOME%\bin。新开命令行执行mvn -v。正常输出会包含Maven版本、JDK版本和系统信息。如果报找不到JAVA_HOME或者版本不对说明JDK那边还没配好回去检查JAVA_HOME。Maven启动时会去读它读不到就起不来。3.3 settings.xml的关键配置逐行讲配置文件在conf\settings.xml。这个文件是全局配置改它会影响所有项目如果你只想给当前用户单独配可以复制一份到C:\Users\你的用户名\.m2\settings.xml个体配置优先级更高。我一般直接改全局这份方便统一管理。第一处本地仓库路径。默认在C:\Users\用户名\.m2\repositoryC盘紧张的话一定改掉。找到localRepository那行默认是注释状态取消注释并改成localRepositoryD:\dev\maven-repo/localRepository以后所有依赖都会下载到这里项目多了之后这个目录轻松上几个G放C盘很容易拖慢系统。第二处镜像加速。默认的中央仓库在国外下载速度经常慢到让人怀疑人生。在mirrors标签里加一段阿里云镜像mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirrormirrorOf*/mirrorOf表示拦截所有仓库请求都走这个镜像省得你一个个配。阿里云这个公共仓库聚合了中央仓库和各种常用第三方仓库日常开发足够。第三处JDK编译版本。用JDK 17开发时建议在profiles里显式声明编译版本避免IDEA和命令行编译结果不一致profile idjdk-17/id activation activeByDefaulttrue/activeByDefault jdk17/jdk /activation properties maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target /properties /profile配置改完后执行mvn help:effective-settings可以打印出最终生效的配置用来确认改动有没有被正确读取。3.4 和IDEA的绑定方式Maven装好之后IDEA默认会用它自带的MavenBundled而不是你刚装的这个。我建议换成自己装的原因是版本可控、settings.xml用的是你改过的那份、本地仓库路径也统一。在IDEA里路径是File → Settings → Build, Execution, Deployment → Build Tools → Maven需要改三处Maven home path 指向你解压的目录User settings file 勾选Override后指向conf\settings.xmlLocal repository 会自动带出来确认是D:\dev\maven-repo就对了。注意换完Maven后老项目里下载过的依赖需要重新解析。右侧Maven面板点一下刷新按钮或者右键pom.xml选Maven → Reload project让它按新仓库重新拉一遍。4. MySQL安装、初始化与连接配置MySQL这一节我打算讲得细一点因为8.0版本在安装和连接上和5.7差别不小最大的坑是认证插件变化导致的连接失败。4.1 安装包形式怎么选Windows上有两个主流选择MSI安装程序和ZIP压缩包。MSI是图形化向导一路下一步会自动帮你创建服务、设置root密码适合第一次装的人。ZIP包是免安装解压后手动初始化、手动注册服务每一步都能看清楚适合想把过程搞明白的人也方便同时装多个版本。学习和日常开发我推荐先用MSI把流程跑通一遍理解它到底做了什么第二次再考虑ZIP。4.2 MSI安装流程中的关键页面下载时选mysql-installer-community这个完整安装器。启动后选择安装类型选Custom自定义只勾选MySQL Server和MySQL Workbench图形客户端就够了其他示例库、文档之类的按需。安装路径同样改到D:\dev\mysql-8.0.36。走到配置向导时几个页面要留意Type and NetworkingConfig Type选Development Machine端口默认3306。如果这台机器上已经有MySQL在用3306这里必须改成别的比如3307否则服务起不来。Authentication Method会问用哪种认证方式。8.0默认是caching_sha2_password更安全但一些老版本的客户端和驱动连不上会报Public Key Retrieval is not allowed。如果项目里用的驱动比较旧可以选传统的mysql_native_password兼容性好一些。选哪个都行后面的连接串可以兜底。Accounts and Roles设置root密码。这里的密码一定记下来很多人装完就忘后面只能重装。建议用一个有规律的密码别用纯随机串。Windows Service勾选把MySQL注册成系统服务服务名默认MySQL80勾选开机自启。4.3 命令行验证与常用操作安装完成后新开命令行验证。因为mysql.exe在bin目录下最省事的做法是把D:\dev\mysql-8.0.36\bin加到Path或者新建MYSQL_HOME再引用。配好后mysql -u root -p输入密码后应进入mysql提示符。进去后先看几个基础信息SELECT VERSION(); SHOW VARIABLES LIKE character_set_server; SHOW VARIABLES LIKE default_authentication_plugin;如果character_set_server不是utf8mb4中文存储可能出现乱码。虽然在建库时可以单独指定但统一改成utf8mb4更省心。修改方式是编辑MySQL目录下的my.iniMSI安装的话通常在C:\ProgramData\MySQL\MySQL Server 8.0\下在[mysqld]段里加character-set-serverutf8mb4 collation-serverutf8mb4_general_ci default-time-zone08:00改完重启服务net stop MySQL80然后net start MySQL80。这里顺便说一下时区8.0默认时区可能不是你所在时区会导致存进去的时间差几个小时加上default-time-zone能省掉后面排查的功夫。4.4 连接串里的几个必备参数Java项目用JDBC连MySQL 8时连接串里带上这几个参数会少踩很多坑jdbc:mysql://localhost:3306/你的库名?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrueuseSSLfalse避开自签名证书告警serverTimezone解决时间偏差allowPublicKeyRetrievaltrue就是前面说的caching_sha2_password认证问题的解药。生产环境这些参数要按实际安全要求调整但本地开发这样配最省事。提示如果你在IDEA里用数据库工具连MySQL驱动版本也要注意。8.0的服务端配老版本驱动会报错建议用和MySQL同代的驱动比如mysql-connector-j-8.0.x。5. Tomcat下载安装与IDEA集成Tomcat是这五件套里看起来最简单、实际上问题最集中的一个。它的安装就是解压难点在于版本对应关系和IDEA里的配置。5.1 Tomcat版本和JDK的对应关系Tomcat版本不是随便选的它和Servlet规范、JDK版本都有绑定关系。记住这张表基本够用Tomcat版本Servlet规范包名建议JDK8.5.xServlet 3.1javaxJDK 79.0.xServlet 4.0javaxJDK 810.0.xServlet 5.0jakartaJDK 810.1.xServlet 6.0jakartaJDK 1111.xServlet 6.1jakartaJDK 17新手和大多数老教程对应的环境选Tomcat 9最合适。如果你的项目是Spring Boot 3.x那它默认用jakarta对应Tomcat 10.1或以上。5.2 下载解压与环境变量下载页面上区分zip和tar.gzWindows选zip。解压到D:\dev\apache-tomcat-9.0.85目录里正常有bin、conf、lib、logs、temp、webapps、work这几个文件夹。环境变量配一个CATALINA_HOME值是Tomcat根目录。这个变量是给Tomcat自己的启动脚本用的配Path不是必须的但加上%CATALINA_HOME%\bin之后可以在任意目录用startup和shutdown命令比较方便。验证方式双击bin\startup.bat会弹出一个黑窗口里面滚动输出启动日志最终出现Server startup in xxx ms字样。然后打开浏览器访问http://localhost:8080能看到Tomcat的默认欢迎页就说明成功了。5.3 server.xml里值得调的几处conf\server.xml是Tomcat的核心配置。默认情况下最需要关注的是端口和编码。端口冲突是最常见的启动失败原因8080被别的软件占了之后Tomcat日志里会明确写Address already in use。解决办法有两个改Tomcat端口或者关掉占用的程序。改端口就是编辑server.xml里这行Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 URIEncodingUTF-8/顺便加上URIEncodingUTF-8能让URL里的中文参数不乱码。虽然8.0以后Tomcat默认就是UTF-8但显式写上不亏。另外如果startup.bat一闪而过八成是JAVA_HOME或JRE_HOME没配好。想看清报错不要双击用命令行进到bin目录执行catalina.bat run异常信息就会完整打印出来。注意Tomcat目录里的work文件夹是JSP编译后的缓存。改了JSP但页面没变化时先清空这个目录再重启比反复重启有效得多。5.4 IDEA里配置Tomcat的完整步骤先说一个很多人不知道的前提IDEA旗舰版Ultimate才内置Java EE和Tomcat支持社区版Community里根本没有Tomcat这个选项。如果你装的是社区版在Run/Debug Configurations里是找不到Tomcat Server的。社区版用户有两个替代方案一是装Smart Tomcat插件它能让你在社区版里启动外置Tomcat并部署web项目配置方式和旗舰版类似二是用Maven插件比如在pom里加tomcat7-maven-plugin或cargo-maven3-plugin用mvn tomcat7:run启动。插件方案不用装额外东西但配置稍微绕一点。旗舰版的配置步骤Run → Edit Configurations点左上角加号选Tomcat Server → Local。在Server标签页点Configure指向Tomcat解压目录。IDEA会自动识别版本。设置HTTP port默认8080和JMX port默认1099有冲突就改。切到Deployment标签页点加号选Artifact把项目的war包或war exploded加进去。推荐用war exploded改了JSP或静态资源不用重新打包刷新就能看到效果。设置Application context也就是访问路径。默认是/项目名_war_exploded嫌长可以改成/项目名或者直接/。配置完点绿色虫子Debug或三角形Run启动IDEA下方会输出Tomcat日志成功后会给出访问地址。这里有个小细节IDEA启动Tomcat时用的是它自己生成的临时CATALINA_BASE不是你解压目录下的那份所以你在原目录改的server.xml不一定生效。端口、编码这类配置要在IDEA的Run Configuration里改或者勾选使用自定义的Catalina base。6. IDEA安装与三大件绑定核对IDEA是这整套环境的中枢。它装好之后真正要做的事是把JDK、Maven、Tomcat三处路径绑对否则前面装的全白费。6.1 版本选择和授权路径IDEA分社区版和旗舰版。社区版免费开源支持Java基础开发、Maven、Gradle但不支持Spring/Spring Boot的深度支持、不支持Java EE和Tomcat、不支持数据库工具和部分Web框架。旗舰版功能完整但需要商业授权。正规获取授权的途径有几个学生和教师可以申请免费教育授权开源项目维护者可以申请开源授权企业用户购买商业授权。这些渠道都是官方公开的。我个人建议刚开始学Java基础时用社区版完全够等到要做Spring Boot Web项目、需要Tomcat和数据库工具时再根据自己的身份去申请对应授权或者用社区版搭配插件方案。不要去找来路不明的安装包风险很大。6.2 首次启动必须改的设置第一次启动IDEA会问主题、插件这里先跳过进去之后有几处建议立刻改掉。文件编码统一为UTF-8。路径是File → Settings → Editor → File Encodings把 Global Encoding、Project Encoding、Default encoding for properties files 三个都改成UTF-8properties那个勾上Transparent native-to-ascii conversion。中文乱码十有八九是这里没统一。自动导包和代码提示。Editor → General → Auto Import里勾上自动导入和自动删无用导入能省很多手动操作。内存调大。默认的堆内存对稍大的项目不够用编辑Help → Change Memory Settings把最大值调到 2048MB 或以上具体看你机器内存。调完重启生效。VM options加编码参数。在Help → Edit Custom VM Options里加一行-Dfile.encodingUTF-8解决控制台输出中文乱码的问题。6.3 JDK、Maven、Tomcat三处绑定核对清单这三处的绑定分散在不同菜单里很容易漏。我整理成一张核对表装完照着过一遍配置项路径要确认的内容Project SDKFile → Project Structure → Project指向JDK 17根目录Language level一致Platform SDKFile → Project Structure → SDKs是否已有该JDK条目没有就新增Maven homeSettings → Build Tools → Maven指向自装Maven不是BundledUser settings同上勾Override指向改过的settings.xmlLocal repository同上显示为自定义的maven-repo路径Tomcat ServerRun → Edit Configurations仅在旗舰版或装了插件后可见还有一个容易被忽略的地方Modules里的语言级别。有时候Project设了17但某个Module还是8编译时就会报不支持的语言特性。进Project Structure → Modules逐个检查保持一致。6.4 插件推荐和项目模板社区版用户建议装Smart Tomcat部署外部Tomcat、Lombok简化Java代码、Maven Helper分析依赖冲突。旗舰版用户额外可以享受内置的数据库工具和Spring支持不用装额外插件。新建项目时学Servlet/JSP选Java Enterprise旗舰版或Maven加手动配置webapp目录做Spring Boot选Spring Initializr把JDK和Maven版本选好把Spring Web依赖勾上生成的骨架直接能跑。提示新建Maven项目后IDEA有时会提示没有找到web.xml这是正常的Maven的web项目默认不带web.xml。在Project Structure → Facets里给Web模块指定web资源目录或者干脆用注解方式配置Servlet就绕过去了。7. 全链路跑通验证与踩坑复盘前面六节都是分模块搭这一节把它们串起来用一个最小项目验证整条链路是否通畅。能跑通这一步才算真正把环境搭好了。7.1 一个最小Web项目的完整验证流程验证目标写一个Servlet连上MySQL取一条数据部署到Tomcat通过浏览器访问。第一步在IDEA里新建Maven项目pom里加上Servlet API和MySQL驱动dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version4.0.1/version scopeprovided/scope /dependency dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId version8.0.33/version /dependency注意Servlet API的scope必须是provided因为Tomcat本身会提供这个包打进去反而可能冲突。第二步项目结构里把src/main/webapp设为web资源目录没有就手动建。第三步写一个继承HttpServlet的类doGet里用JDBC连MySQL查数据把结果通过response.getWriter().println()输出。第四步用前面配好的Tomcat Run Configuration部署启动访问。这个流程能跑通说明JDK能编译、Maven能下依赖、Tomcat能部署、MySQL能连接五件套全部到位。任何一步报错都能对应回前面某一节去查。7.2 常见问题速查表下面这张表是我带人过程中统计出来的高频问题基本覆盖80%的翻车场景现象大概率原因处理方式命令行提示不是内部或外部命令Path没配或没生效检查Path重开命令行窗口java和javac版本不一致系统里有多个JDKwhere java排查调Path顺序Maven下载依赖极慢或失败没配镜像或镜像失效检查settings.xml里的mirror配置mvn报找不到JAVA_HOMEJAVA_HOME未配或值错误核对JAVA_HOME指向JDK根目录服务端连MySQL报Public Key Retrieval认证插件为caching_sha2_password连接串加allowPublicKeyRetrievaltrue存进去的时间不对MySQL时区设置问题my.ini加default-time-zone并重启Tomcat启动窗口一闪而过JAVA_HOME未配命令行执行catalina.bat run看报错Tomcat报Address already in use8080端口被占用改端口或关掉占用进程IDEA里找不到Tomcat Server选项用的是社区版装Smart Tomcat插件或换方案页面中文乱码编码未统一IDEA编码设UTF-8server.xml加URIEncodingIDEA控制台中文乱码JVM文件编码不是UTF-8VM options加-Dfile.encodingUTF-8Maven项目依赖飘红仓库未刷新或依赖坐标错误Reload project检查pom坐标7.3 几个容易被忽略的细节第一个细节是环境变量的生效范围。用户变量只对当前登录用户生效系统变量对所有用户生效。如果你换了Windows账户配在用户变量里的东西就没了。我一般统一配系统变量。第二个细节是多个JDK共存的管理。真实项目里经常要同时维护JDK 8和17的工程。我的做法是两个版本都装好各自一个JAVA_HOME_8、JAVA_HOME_17变量Path里只放当前主用的那个切换项目时在IDEA的Project Structure里单独指定SDK不动系统环境变量。这样既不影响命令行项目之间也互不干扰。第三个细节是Maven依赖冲突。装全了环境不代表工程就一定跑得起来jar包版本冲突是另一类常见问题。装个Maven Helper插件打开pom文件切到Dependency Analyzer标签冲突的依赖会红色标记出来配合exclusions排除掉多余版本比在异常堆栈里大海捞针高效得多。第四个细节是养成备份环境配置的习惯。把settings.xml、server.xml、my.ini这几个改过的配置文件单独存一份下次换电脑或者重装系统直接覆盖回去能省掉重复劳动。最后分享一个我自己的操作习惯整套环境搭完之后立刻新建一个空项目跑通编译—打包—部署—访问这条最简链路趁热把问题暴露出来。因为环境搭建的问题往往有延迟——装的时候没报错等到真正写项目时才冒出来那时候你已经在想业务逻辑了切换成本很高。一次性验证到位后面几个月都能安心写代码。这套环境我前后在十来台机器上装过从Windows到macOS踩的坑基本都在上面这几节里了真正难的不是某个命令记不住而是出问题时知道往哪个方向查。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

给 Codex 配第三方模型 Jev:cc-switch 一键切换配置攻略 2026/9/30 13:39:06

给 Codex 配第三方模型 Jev:cc-switch 一键切换配置攻略

给 Codex 配第三方模型这件事,我一直觉得是“人人都知道,但没几个人讲透”的操作。Codex 官方默认只和 OpenAI 自己的模型对话,所以你拿到手的第一反应往往是:挺好用,但额度贵、账号门槛高、想换个模型又不知道改哪里。…

阅读更多 →
三进制模型落地16GB显存:Bonsai 2 27B本地部署全解析 2026/9/30 13:39:06

三进制模型落地16GB显存:Bonsai 2 27B本地部署全解析

1. 项目概述:当三进制遇上 16GB 显存,事情开始变得有意思先说明白这台机器是什么配置,因为我接下来要说的所有内容,都是在这样一台“不算旗舰、但也够得着消费级天花板”的设备上完成的实测:RTX 4060 Ti 16GB&#xff…

阅读更多 →
WorkBuddy定时任务+DeepSeek+微信推送:打造每日AI日报自动化工作流 2026/9/30 13:39:06

WorkBuddy定时任务+DeepSeek+微信推送:打造每日AI日报自动化工作流

1. 为什么我要给 WorkBuddy 定一个“上午十点半”的闹钟每天早上到工位,第一件事不是泡咖啡,而是打开各种信息源翻一遍:行业动态、竞品更新、社区里冒出来的新工具、昨天没看完的技术讨论。这件事本身不复杂,但极其消耗注意力——…

阅读更多 →
Linux内存分配器全解析:glibc malloc、slab与OOM排查 2026/9/30 13:39:06

Linux内存分配器全解析:glibc malloc、slab与OOM排查

1. 从一个"内存只涨不降"的进程说起做服务端运维和后台开发的人,多半都遇到过这种场景:top里某个进程的 RES 一栏从 200M 慢慢爬到 1.5G,业务请求量明明没变,重启一下又回到 200M,过两天再爬上去。第一次遇到…

阅读更多 →
家装AI的物理约束引擎:如何让AI设计“能落地”? 2026/9/30 13:39:06

家装AI的物理约束引擎:如何让AI设计“能落地”?

一、引言:通用AI生图的“物理常识缺失” 通用AI图像生成器(如Midjourney、Stable Diffusion)在家装场景中的表现令人惊艳——输入一段文字,几秒钟就能生成一张视觉上几乎可以乱真的室内效果图。但当这张图被拿去实际施工时&#x…

阅读更多 →
Eolink:基于OpenAPI的API协作平台实践 2026/9/30 13:38:52

Eolink:基于OpenAPI的API协作平台实践

1. 这不是又一个Postman替代品,而是API协作范式的重新定义 最近在给一家做智能硬件的客户做API治理咨询时,团队里刚入职的00后实习生甩给我一个链接,说:“老师你试试这个,比Postman顺手多了。”我点开一看是Eolink&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉