ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Java环境配置完全指南:JDK、JAVA_HOME、PATH与javac实战

Java环境配置完全指南:JDK、JAVA_HOME、PATH与javac实战 身边不少准备从零开始学Java的朋友都是信心满满地买了课、收藏了一堆学习路线结果卡在了第一步——环境配置。其实这个坎儿并不难难的是市面上的教程要么默认你懂了一堆前置概念要么省略了最容易翻车的细节照着敲完命令cmd窗口里蹦出一句“不是内部或外部命令”人直接懵了。这篇文章我打算把Java环境配置这件事从头到尾拆开揉碎结合我这些年实际带人、帮人排查的经验把JDK版本选择、下载安装、环境变量设置、命令行验证、IDE配置和常见报错定位全部讲清楚。按这套流程走几乎不会再遇到“配了三小时还没搞定”的绝望情况。1. 先搞懂JDK、JRE与JVM才知道环境配置究竟在配什么很多人在配置环境之前根本没弄明白自己到底在配什么所以一旦出错就完全没法判断是哪一步的问题。其实Java环境配置一点都不神秘它背后就是三个概念之间的关系。1.1 白话版Java运行机制一次编译到处运行到底怎么实现的Java最大的卖点是“一次编译到处运行”这句话的实际含义是你写的Java代码会被编译成一种叫“字节码”的中间文件.class文件这个文件不面向任何具体的操作系统只面向Java虚拟机JVM。JVM在Windows上有Windows版本在macOS上有macOS版本在Linux上有Linux版本但它们认识的字节码是完全相同的。打个比方字节码就像一份“普通话剧本”JVM就是舞台Windows、macOS、Linux这些操作系统是不同的剧院。同一个剧本在每个剧院的舞台上都能按相同的方式演出只是因为剧院不同舞台搭建的方式略有差异。你在Windows上编译出来的.class文件拷贝到Linux上只要装了对应的JVM依然能跑这就是Java跨平台的本质。所以环境配置要解决的核心问题就是让你的电脑上有一个“能编译Java代码的工具”和“能运行Java字节码的虚拟机”仅此而已。1.2 JDK、JRE、JVM三者关系为什么只需要装一个JDK就够了很多新手会在这一步被搞晕因为教程里一会儿说JDK一会儿说JRE一会儿又冒出来一个JVM感觉像是要装三样东西。其实它们的包含关系非常清晰JVMJava Virtual MachineJava虚拟机负责运行.class字节码文件是Java跨平台的基石。JREJava Runtime EnvironmentJava运行环境包含JVM和一些基础的类库作用是让你能“运行”Java程序但它不能编译代码。JDKJava Development KitJava开发工具包包含完整的JRE还额外提供了javac编译器、jar打包工具、javadoc文档工具等一系列开发工具作用是让你能“开发”Java程序。换句话说JDK是大包里面既带开发工具又带运行环境。所以对于要写Java代码的人来说只需要安装一个JDK就全齐了不需要单独再去装一遍JRE。而且自从JDK 9之后Oracle官方发布的JDK安装包里已经不再单独提供独立的JRE安装选项了再去找什么“安装JRE”的教程纯属浪费时间。1.3 JAVA_HOME、PATH、CLASSPATH三个环节各自的作用环境变量配置本质上是在告诉操作系统三件事。这三个变量经常被混在一起讲很多人直接照着配配完了也不知道哪个在起作用出了问题更是无从下手。我分开说一下JAVA_HOME这是一个“指路标”专门用来指向JDK的安装目录。很多基于Java开发的工具比如Tomcat、Maven、Gradle的启动脚本在运行时会主动去找这个环境变量不配它们可能跑不起来。它本身不直接参与命令执行。PATH这才是让命令行认识java和javac命令的关键。当你在cmd里输入java -version的时候操作系统会在PATH环境变量列出的所有目录里挨个查找有没有java.exe这个文件找到了就执行。所以只要把JDK安装目录下的bin文件夹路径加进PATH系统就能找到java和javac命令了。CLASSPATH用来告诉JVM去哪里找你写好的类文件。这个变量在JDK 5之前必须手动配置成.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar否则连最基础的运行都会报错。但JDK 5之后JVM会默认从当前目录加载类文件所以在绝大多数开发场景下新手根本不需要配置CLASSPATH配错了反而容易引出各种诡异问题。这里我想强调一句环境配置最核心的就是JAVA_HOME和PATH这两个CLASSPATH直接留空就好别画蛇添足这是我带新手时反复念叨的一句话。2. JDK版本和发行版该怎么选不是越新越好也不是越老越稳一提到装JDK很多新手直接去搜“JDK最新版下载”装完发现跟教程里的界面完全不一样配置完第二天又出现一堆兼容性问题。版本选择这件事应该在你动手下载之前就决定好。2.1 LTS版本时间线Java 8、11、17、21到底差在哪Java的版本演进有一个很特殊的节奏Oracle每6个月发布一个普通版本同时每段时间会指定一个长期支持版本LTS。LTS版本承诺在数年内持续提供安全更新和性能修复适合生产环境使用也是绝大多数公司实际在用的版本。我把近几年最常见的几个LTS版本整理成了下面的表方便你直接对照版本发布时间标志性新特性适合人群Java 82014年Lambda表达式、Stream流、Optional大量老项目还在用但语法明显过时不适合新学者起步Java 112018年var局部变量类型推断、HTTP Client相对中庸很多公司在Java 8向上升级时的第一站Java 172021年密封类、switch模式匹配、文本块目前企业和教程生态都比较成熟推荐新学者选择Java 212023年虚拟线程、record模式匹配增强最新LTS前瞻性强但部分老工具链尚在适配期Java 8在Java社区里地位很特殊因为Spring Boot生态大量老项目基于它构建网上老教程也特别多。但如果你是一个完完全全的新手我依然不建议从Java 8开始学因为后续学到的很多新语法在Java 8上是跑不通的而Java 17和Java 21基本兼容了主流新特性学完再去理解老项目的代码也不吃力。2.2 Oracle JDK与OpenJDK还有Temurin到底选谁确认了版本之后你会发现同样叫JDK 21网上能下载的地方却有好几个Oracle官网、Adoptium、Amazon Corretto、Microsoft Build of OpenJDK……选择困难症瞬间犯病。其实它们的底层代码基本相同都源自OpenJDK项目差别主要集中在商业授权和服务支持上。对个人学习和绝大多数商业使用场景来说我的建议是直接选择Eclipse Adoptium发布的Temurin版本。它是一款完全开源、免费、无商业使用限制的OpenJDK构建版社区活跃度很高更新也及时在知名软件仓库和自己的官网都能找到下载入口。至于Oracle JDK自从2019年开始对商业用途收取订阅费之后只有在需要Oracle官方技术支持的企业场景下才需要去考虑付费订阅个人用来学习完全没有必要。Amazon Corretto和Microsoft Build of OpenJDK也都是很可靠的选择差异极小按自己的使用习惯来就好。2.3 我的选型建议新手第一次装JDK直接抄这份答案如果你不想纠结直接按下面这套组合来版本选择JDK 17如果想尝鲜或者确认自己电脑上不会有其他老工具的兼容性问题选JDK 21也可以但JDK 17对新手来说最稳。发行版选择Temurin 17也就是Eclipse Adoptium的构建版。配套工具后面写代码用IntelliJ IDEA Community版编译运行全在IDE里完成几乎不需要接触命令行但这篇文章里我还是会把命令行验证方法讲透。另外补充一个非常实用的建议安装JDK的路径要避开中文、空格和特殊符号。比如不要装在C:\Program Files\Java下虽然它本身路径里带空格也能工作但后续配置Maven、Gradle等工具时带空格的路径偶尔会引发解析错误排查起来极其痛苦。我一般推荐装在C:\dev\java\jdk-17或者D:\Java\jdk-17这种自定义目录下省心。3. Windows系统JDK安装全流程从下载到环境变量一次跑通这里我以Windows 11系统、Temurin 17为例一步一步走完整流程。Windows 10的操作方式几乎完全相同可以放心照着做。3.1 下载前先确认的硬件信息64位系统和安装路径第一步不是去下载而是先搞清楚自己电脑的系统位数。右键点击“此电脑”选择“属性”查看“系统类型”是64位还是32位。现在绝大多数电脑都是64位系统如果你还在用32位系统那我想说这都什么年代了赶紧重装个64位系统再学Java吧2024年之后的JDK版本基本都只提供64位安装包了。确认完毕之后去Temurin的官网也就是Eclipse Adoptium的网站下载页面在Version选项里选择17Operating System选择WindowsArchitecture选择x64然后点击下载.msi格式的安装包。这里我建议选.msi格式因为它的安装过程像普通软件一样有图形界面比较适合新手.zip免安装版反而容易因为解压路径混乱导致后续配置出错。3.2 JDK安装包一步步装完注意一个很容易被忽略的弹窗下载完成后双击.mis安装包安装过程有几个步骤需要留心欢迎界面直接Next。选安装路径时把默认路径改成一个没有空格和中文的目录比如我先建好C:\dev\java文件夹然后把安装路径指到C:\dev\java\jdk-17。注意安装路径最后会带jdk-17这样的版本文件夹方便以后装多个版本时一眼认出。关键一步界面上会出现一个选项叫“Set JAVA_HOME variable”意思是“是否自动帮我把JAVA_HOME环境变量配好”。这里一定要勾选上然后它会让你选择安装到的本地JDK版本选我们刚指定的那个目录就行。这个选项还会自动把bin目录加进PATH很多人不知道这个细节手动配置时反而容易把路径写错。再往下有一个“JavaSoft (Oracle) registry keys”之类的关联选项保持默认即可。点击Install等待安装完成。安装完之后先不要急着关窗口打开文件资源管理器确认一下C:\dev\java\jdk-17\bin目录下确实有java.exe和javac.exe这两个文件这是后续验证的底气。3.3 环境变量配置实操Windows 10/11通用虽然安装时勾选了自动配置JAVA_HOME但我还是建议你手动进去检查一遍同时顺便把整个配置过程学会因为你以后很可能要在别的电脑上不带图形安装包地配置环境。右键“此电脑” - “属性” - “高级系统设置” - 右下角的“环境变量”会看到一个对话框上半部分是用户变量下半部分是系统变量。在“系统变量”区域点击“新建”变量名填JAVA_HOME变量值填C:\dev\java\jdk-17这里填JDK安装的根目录不要带\bin。然后在下方的“系统变量”列表里找到Path双击它在弹出的编辑界面里点击“新建”输入%JAVA_HOME%\bin然后把它上移到最顶部。点击确定保存。这里有两个容易踩的坑一是很多人会直接把%JAVA_HOME%\bin输入成了一个错误格式比如多了个分号或者少了反斜杠要仔细核对二是上移的作用是让它优先被搜索到如果你电脑里之前装过其他Java版本这一步能避免“明明配置了新版本运行的却是旧版本”的问题。3.4 命令行验证不只看java -version还要看javac配置完环境变量最关键的一步来了验证。先打开一个全新的命令行窗口开始菜单搜索“cmd”回车即可注意一定是新开的窗口旧窗口不会自动刷新环境变量读取结果依次输入两条命令java -version javac -version正常情况下java -version会输出类似openjdk version 17.0.x ...的信息javac -version会输出类似javac 17.0.x的信息。两条命令都有输出才说明环境配置真正成功。这里我想特别强调javac的重要性。java命令负责运行程序javac命令负责编译程序想要开发Java代码两者缺一不可。如果java -version有输出但javac报“不是内部或外部命令”说明你的PATH里指向的根本不是一个完整JDK大概率是系统里残留的JRE在捣乱。这个问题我后面会专门展开讲。顺便再验证一下JAVA_HOME是否生效输入echo %JAVA_HOME%如果能输出C:\dev\java\jdk-17说明环境变量链路已经完整打通。4. macOS与Linux环境配置简述跨平台的思路完全一致虽然Windows用户占据了Java学习者的半壁江山但macOS和Linux上的Java开发者数量其实也非常可观而且这三个平台的配置思路是一模一样的只是具体的操作命令不同。如果你用mac或Linux这一节可以直接抄作业。4.1 macOS上的安装方式和JAVA_HOME设置macOS有两种主流安装方式图形化拖拽安装和Homebrew命令行安装。图形化方式很简单下载Temurin 17的.pkg安装包双击一路继续安装即可。装完之后打开“终端”输入java -version和javac -version验证一下正常情况下命令已经被自动加入到PATH里了不需要手动改任何东西。macOS上JDK被统一安装在/Library/Java/JavaVirtualMachines/目录下系统自带的命令/usr/libexec/java_home可以帮你准确找到当前使用的JDK路径输入/usr/libexec/java_home回车它会输出类似/Library/Java/JavaVirtualMachines/xxx.jdk/Contents/Home的结果这个路径就是JAVA_HOME的值。如果你更习惯用Homebrew管理软件那安装方式更简单brew install openjdk17但这里有个小坑Homebrew安装的openjdk是“keg-only”的意思是它不会被自动链接到系统PATH中需要手动加一条软链接或者把路径写进环境变量。最稳妥的做法是在你的shell配置文件比如~/.zshrc里加上export JAVA_HOME$(/usr/libexec/java_home -v 17) export PATH$JAVA_HOME/bin:$PATH改完后执行source ~/.zshrc让它生效再验证java -version和javac -version即可。4.2 Linux通过包管理器安装JDK并配置全局环境变量Linux发行版种类很多我以最常见的Ubuntu/Debian系和CentOS/RHEL系为例来讲。Ubuntu系统使用apt包管理器安装非常痛快sudo apt update sudo apt install openjdk-17-jdkCentOS/RHEL系统使用yum包管理器对应的命令是sudo yum install java-17-openjdk-devel注意CentOS安装时包名一定要带-devel因为不带devel的只是JRE运行环境不包含javac编译器这也是Linux上非常容易踩的一个坑。安装完成后用java -version和javac -version验证如果都正常再手动把JAVA_HOME写进全局环境变量。先执行update-alternatives --config java查看当前默认JDK路径或者直接搜寻sudo update-alternatives --list java找到路径后在/etc/profile.d/java.sh文件里写入export JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64 export PATH$JAVA_HOME/bin:$PATH保存后执行source /etc/profile.d/java.sh然后验证echo $JAVA_HOME和java -version一切正常就说明Linux环境配置完成。4.3 为什么跨平台的核心逻辑都一样JAVA_HOME只是路径我见过很多人今天用Windows配置一遍明天用mac配置一遍总觉得是两个完全不同的流程其实抓住本质之后就豁然开朗了不管什么操作系统最终要做的事就三件——把JDK文件解压或安装到一个了明确的目录、把这个目录记录到JAVA_HOME变量里、把$JAVA_HOME/binWindows是%JAVA_HOME%\bin加进PATH。仅此而已剩下的全是不同系统在表述方式上的差异。5. 用HelloWorld验证整套环境从新建文件到跑通输出环境配置成功只代表工具链通了但工具链通了不代表你就能正确使用它。我强烈建议你在正式学Java语法之前先亲手写一个HelloWorld并让它跑起来这个过程会一次性暴露你脑子里对“编译”和“运行”的模糊认知。5.1 手写第一个Java文件文件名与类名的硬性规定新建一个纯文本文件文件名必须叫HelloWorld.java注意大小写和大小写敏感。然后用记事本或任何纯文本编辑器打开它写入下面这段代码public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, Java!); } }这里有一个Java的硬性规定如果一个大类被声明为public class那么文件的名字必须和这个类名完全一致包括大小写。也就是说类名叫HelloWorld文件就必须叫HelloWorld.java不能叫helloworld.java也不能叫Hello.java。编译器在遇到时却会直接报“类是公共的应在名为HelloWorld.java的文件中声明”的错误。这是新手一开始最容易踩的坑。另外一个细节是文件编码。Windows上的记事本默认保存为GBK编码如果你写的代码里有中文注释用javac默认编码编译时可能会报“编码GBK的不可映射字符”的错误。建议你在记事本里点击“另存为”把编码选成UTF-8再保存。我在自己电脑上写代码时从来不用记事本后面讲到IDE时会解释原因但新手阶段用记事本练一次手、踩一遍这个坑反而是印象最深刻的学习方式。5.2 javac编译和java运行这两步到底发生了什么打开命令行窗口先切换到HelloWorld.java所在的目录然后依次执行javac HelloWorld.java这一步是“编译”它会把你的.java源代码翻译成JVM能识别的.class字节码文件。编译成功的话你会发现当前目录下多了一个HelloWorld.class文件而且命令行不会打印任何提示信息。注意没有消息就是好消息这是Unix哲学里的经典观念很多新手以为控制台没反应是出错了还非要去搜一遍“javac没输出正常吗”这里我直接告诉你没有报错就是成功了。紧接着执行运行命令java HelloWorld这一步是“运行”JVM会加载HelloWorld.class并执行其中的main方法。注意这里的类名不包含.class后缀也不能写成java HelloWorld.class很多新手死在这一步。如果一切正常命令行会输出Hello, Java!。为什么必须先编译再运行打个比方javac就像是把一篇中文文章翻译成英文而java是拿着英文稿子去朗读。没有翻译稿.class文件后边的朗读者JVM根本不知道要念什么。5.3 HelloWorld报错定位我见过最多的三类新手错误如果HelloWorld没有跑通别慌对照下面的场景自查javac: 不是内部或外部命令说明JDK环境变量没配好回去看第3.3节大概率是%JAVA_HOME%\bin没写进PATH或者路径写错了。错误: 找不到或无法加载主类先确认是不是执行了java HelloWorld.class然后确认当前目录下确实存在HelloWorld.class文件最后再确认类名和文件名拼写完全一致。错误: 编码GBK的不可映射字符代码里有非英文字符而且保存的编码不是UTF-8。解决办法是重新用UTF-8编码保存文件或者编译时加一句javac -encoding UTF-8 HelloWorld.java。6. 装完环境还要装什么IDE选型和IDEA首次配置如果你已经通过命令行跑通了HelloWorld那恭喜你Java开发的大门已经打开了。但接下来的开发里你真的要一直用记事本加命令行写代码吗我劝你慎重因为Java项目结构一复杂纯命令行管理源文件能让人怀疑人生这时候就需要IDE上场了。6.1 IntelliJ IDEA Community为什么是新手首选Java圈子里最常用的IDE无外乎三款IntelliJ IDEA、Eclipse、VS Code。三款我都用过但我给新手的建议非常明确直接用IntelliJ IDEA Community版社区版它免费、无需破解、对Java的主流支持甚至超过很多商业版工具也是目前世界范围内Java工程师使用率最高的IDE之一。一句话总结Eclipse和IDEA的差别Eclipse更像一个空白的工作平台很多东西在你上手时是需要选插件的配置起来比较折腾IDEA则是把完善的命令和智能提示都准备好开箱即用。名字的“IntelliJ”就来源于“intelligent”它会在你写代码时预判你的下一步补全效率明显更高。对新学者来说一个好的IDE能极大降低“语法还没记牢”带来的挫败感所以第一印象很重要我不建议新手拿Eclipse磨炼意志。6.2 IDEA里指定JDK版本的两种方式下载并安装完IDEA Community之后打开它第一次会进入启动向导页面。这里有两种情况如果你是先装了JDK再装的IDEA启动时它通常会自动检测到系统的JAVA_HOME并显示在首页的SDK列表里直接选中即可。但如果你跟我一样遇到过检测失败的情况或者系统里装了多个JDK那就需要手动指定。在IDEA欢迎页点击“New Project”在项目设置向导里找到“Project SDK”右侧的下拉框选“Add JDK”或“Add SDK”然后浏览到你前面安装的JDK根目录比如Windows上的C:\dev\java\jdk-17选中之后点击OKIDEA就能识别出这个JDK并把它的版本信息显示出来。这个是新建项目时的配置方式。另一种方式是修改已有项目的SDK菜单栏点击File - Project Structure - Project在右侧的“SDK”栏里同样可以点击“Add JDK”添加然后在“Language level”里选对应的语法级别。我这里要提到的经验是Language level和SDK是两个概念SDK决定用哪个JDKLanguage level决定编译器接受哪些语法版本最好保持一致否则容易遇到“某些代码在项目里标红但编译却通过”或者“编译报错但代码看起来没问题”的怪象。6.3 Eclipse和VS Code的取舍什么情况下才建议选既然我说IDEA是首选那Eclipse和VS Code是不是完全没有存在的意义也不是分场景看。Eclipse有强大的插件生态比如嵌入式开发、C/C混合开发等场景下Eclipse依然有不少忠实用户另外一些老公司、老项目用了十几年的Eclipse新人进去往往也得跟着用。VS Code则是一个轻量级的编辑器装完“Extension Pack for Java”插件之后也可以写Java启动速度快、占用资源低写一些脚本工具、小样例项目很顺手但如果做大型Spring Boot项目各种微服务模块一多VS Code在导航、重构、依赖分析方面的体验还是比IDEA差一截。所以我的结论是新手第一门语言的第一个IDE不用犹豫直接选IDEA CommunityEclipse可以等你日后碰到老旧项目时再补知识VS Code更适合作为第二编辑器用于快速浏览代码和写小测试不建议作为主开发工具。7. 环境配置常见问题排查这些坑我都踩过你直接抄答案配置环境这件事每个人多多少少都会碰到报错。下面这几类是过去几年里被问得最多的问题我按出现频率排个序每个都附上排查思路哪怕你没遇到也建议收藏备用。7.1 明明配好了cmd里就是提示“不是内部或外部命令”这个场景几乎每个新手都经历过。第一反应别急着怀疑配错了先确认你当前打开的cmd窗口是什么时候打开的。环境变量的读取发生在命令行窗口启动的那一刻如果你先开了cmd然后才去修改环境变量这个窗口里读到的还是旧配置所以你运行java时报“不是内部或外部命令”但你打开“系统属性”看配置又明明是对的。解决办法也很简单关掉cmd窗口重新开一个再试。如果你不喜欢一遍遍开关也可以在命令行里输入refreshenv不过这个命令需要额外装Chocolatey包管理器才会有所以我一般还是建议直接关开窗口。另外再检查一个细节你确认%JAVA_HOME%\bin里真的有java.exe和javac.exe吗有时安装包没有完整解压或者你路径填的是JDK根目录比如C:\dev\java\jdk-17而没有指向bin子目录也会导致找不到命令。7.2 java -version有输出、javac却没有典型JRE残留这是很多Windows老用户会踩的特殊坑系统里可能残留着以前安装Java时自动装上的JRE或者某个第三方软件悄悄往Path里塞了一条JRE路径。运行时只要找到java.exe就能用所以java -version正常但JRE里压根就没有javac.exe所以javac怎么都找不到。排查方法是先看JDK路径是否真的在PATH里而且要在JRE路径前面。在cmd里输入where java会按PATH顺序列出所有找到的java.exe及对应路径接着输入where javac看它是空还是有路径。如果你看到where java返回的第一个路径不是你的JDKbin目录那就说明PATH里还有其他Java路径排在前面去环境变量里把那些路径删掉或者把你自己的%JAVA_HOME%\bin上移到最顶部问题就能解决。7.3 “错误: 找不到或无法加载主类”的三个真实原因这个报错在HelloWorld阶段出现频率极高但原因就三选一一是运行时类名写错了比如带了.class后缀或者大小写和类名不一致二是.class文件不在当前目录而你运行java时又没有用-cp指定类路径JVM默认只在当前目录找类所以编译完不要乱移动.class文件三是你写了package声明但运行命令里没带包名比如代码第一行写了package com.demo;那编译后的类就处于com.demo包下面运行命令必须回到包路径的上一级目录写完整类名com.demo.HelloWorld否则JVM照样找不到。第三种情况其实是“类名全限定名”的概念新手一上来接触得少容易在这里卡很久。你只需要记住代码里写了package运行时就得带上“包名加类名”。7.4 系统里装了多个JDK怎么快速切换有些同学电脑里可能因为之前折腾装过Java 8、Java 17两个甚至更多的JDK导致java -version显示的版本不是你想要的。这种情况优先级是最容易判断的PATH里所有路径按顺序从上到下检索谁排在前面就用谁。如果你希望自己指定的版本生效就在环境变量里把%JAVA_HOME%\bin或对应的C:\dev\java\jdk-17\bin手动移动到最上面。如果你经常需要在不同项目间切换JDK版本那比手工改Path更优雅的办法是利用IDE的SDK配置。IDEA每个项目都可以独立指定SDK所以你在IDEA里完全不需要动系统环境变量各项目用各项目的版本互不干扰。这也是我推荐把“系统层面的PATH”和“项目层面的SDK”两个概念分开理解的原因混在一起想就会觉得切换版本特别麻烦。7.5 配置完要不要重启电脑一个我说了很多遍的细节先说结论配置完JAVA_HOME和PATH不需要重启电脑只需要重新打开命令行窗口就够了。很多人严格按照教程配置完发现还是不行又跑去重启其实大概率不是重启能解决的问题而是像7.1和7.2里说的情况——没开新窗口或者Path路径顺序不对。不过有一个例外场景如果你装JDK之前已经开了好几个软件比如某些老版本的IDE或服务器软件它们不会自动感知新的环境变量这种时候重启一下这些软件就好不需要重启整个操作系统。另外Windows Explorer资源管理器有时会缓存环境变量导致你从资源管理器地址栏里打开cmd时读到旧配置那就不如直接开始菜单搜“cmd”打开新窗口来得干净。最后再说一点个人体会。我帮人排查环境问题第一句话永远是“把所有命令行窗口全部关掉新开一个再试一遍。”就这一条几乎能解决三成以上“我明明配好了但就是不行”的问题。Java环境配置这件事第一次折腾确实会觉得啰嗦但只要你动手完整装过一遍后边换新电脑、换操作系统、换工作环境思路都是一模一样的。把JAVA_HOME、PATH、javac这个铁三角跑通了你的Java学习之路才算真正迈开了第一步。
返回列表