先说句实在话:Java环境安装这件事,看着简单,实际上翻车的人特别多。我见过太多人卡在“java不是内部或外部命令”、卡在javac和java版本对不上、卡在Win11这个新系统上找不到设置入口。尤其是Win11相比Win10改了不少交互逻辑,右键菜单变了、系统设置入口藏得深了、终端默认变成了Windows Terminal,如果你还在网上翻老教程照着Win10的路径找,很容易一头雾水。
这篇指南就是给所有要在Win11上装Java的人准备的。不管你之前装没装过,也不管你是刚入门的新手还是需要给新电脑配开发环境的老手,看完这篇文章你都能自己把JDK装好、把环境变量配对、把第一个Java程序跑起来。我会直接从选版本开始讲,一直讲到常见问题排查,全程用手把手的方式把Win11下的操作路径给你标清楚。这样你就不用再一个一个去搜“Win11环境变量怎么打开”“JDK下载哪个版本”这些零散问题了。
1. 装之前先想清楚:版本、发行版和架构怎么选
很多教程上来就让你下载、安装、下一步,结果装到一半发现版本不对,或者授权协议有坑,又得卸了重来。所以我先把选型这件事单独拿出来讲,这个环节搞明白,后面都是机械操作。
1.1 JDK版本:别一上来就装最新的
JDK的版本号现在走的是半年一迭代的节奏,Oracle每年3月和9月各发一个版本,但并不是所有版本都值得装。对绝大多数开发者和学习者来说,选长期支持版本(LTS)才是最稳的。目前市面上主流的LTS版本是Java 8、Java 11、Java 17和Java 21。
Java 8虽然年头很久了,但很多老项目、学校课程、以及一些传统企业的生产环境仍然在用。如果你是要跑老项目或者教材指定了版本,那就老老实实用8。Java 11是很多中间件和框架的基线版本,比8多了不少新特性,性能也有优化。Java 17是当前新项目的主流选择,Spring Boot 3.x、新版Android工具链都要求17起步。Java 21是目前最新的LTS,如果你的项目没有历史包袱,选21也很合适。
我的建议是:新手直接装17,因为教程多、踩坑少、兼容性好。如果你只是想体验最新语法特性,再装一个21备用也不迟。千万不要一上来就装最新的非LTS版本,比如24、25这类短期版本,虽然数字看着新,但学习资料少,遇到问题搜不到答案很耽误事。
1.2 发行版选择:Oracle JDK、Temurin还是Zulu
确定了版本号之后,还要选发行版。是Oracle官方版、Eclipse Adoptium的Temurin版、Azul的Zulu版,还是Amazon的Corretto版?很多新手第一次看到这些名字会以为是在选操作系统,其实这些是不同机构基于OpenJDK构建的发行包,本质上都是JDK,只是维护方、更新节奏和付费条款不同。
Oracle官方JDK自Java 11开始,对于商业用途有了严格的许可限制。如果只是个人学习和开发,Oracle JDK可以使用,但在企业内部分发或者商用,需要特别注意授权问题。Eclipse Adoptium(也就是大家常说的AdoptOpenJDK继承者)提供的Temurin发行版完全开源免费,而且是社区驱动,覆盖面很广,是我个人推荐给大多数人的选择。微软的OpenJDK也很好,更新及时;Azul Zulu的社区版同样免费,而且对Windows的支持一直不错。
如果你不知道该选哪个,那就记一句话:个人学习开发用Temurin 17,图省事用Oracle JDK 17,企业环境按项目规定来。
1.3 系统架构:x64还是ARM64
Win11现在不止跑在Intel和AMD的x64处理器上,很多ARM架构的电脑(比如一部分新款轻薄本、平板设备)也预装了Win11。不同的CPU架构要选对应的JDK安装包,装错了会直接提示“不是有效的Win32应用程序”或者根本无法启动。
查看方法很简单:在Win11里按快捷键Win + I打开设置,进入“系统→系统信息”,在“系统类型”一栏会明确显示是“基于x64的处理器”还是“基于ARM的处理器”。大部分人的电脑是x64,直接用x64安装包就行。如果你用的是ARM版Win11设备,那就去下载对应的ARM64版本。
选择ARM版JDK的细节容易踩坑,因为许多教程默认大家用x64,给出的下载链接都是x64的。如果你属于那部分ARM用户,一定看清安装包文件名里的“arm64”标记。
2. Win11环境清理与下载准备
选型选好了,接下来进入实际操作阶段。别急着双击安装包,先把准备工作做好,这样后面能少踩一半的坑。
2.1 先卸载旧版本JDK
如果你的电脑之前装过Java,尤其是装过多个版本,或者是从Win10升级上来的系统,建议先把原来的JDK和JRE清理干净。否则新装的JDK很可能和旧版本产生冲突,最常见的现象就是输入java -version显示的是老版本,javac -version显示的却是新版本,这种不一致问题排查起来最头疼。
清理方法:打开Win11的“设置→应用→已安装的应用”,在搜索框里输入“Java”或“JDK”,把所有Java相关的条目都找到并卸载。卸载顺序无所谓,关键是卸载完以后去检查两个地方:一个是Path环境变量里是否还残留着旧版本的路径,另一个是用户目录下是否还有残留的.Java缓存目录。这两个地方如果不清理干净,后面配置新环境变量时容易出幺蛾子。
顺带提醒一句,Win11自带的“应用”设置比Win10的控制面板好用不少,卸载界面也更直观,但功能上其实是一样的。如果你懒得翻新界面,也可以Win + R输入appwiz.cpl打开经典程序列表卸载,在Win11里依然有效。
2.2 JDK下载地址与文件选择
下载JDK之前先区分两个概念:JRE和JDK。很多教程会说“先装JDK再装JRE”,这话放到现在其实已经过时了。从Java 9开始,官方就取消了独立JRE的发布,JDK里面自带完整的运行时环境,你只需要下载JDK一个包就够了。
如果你是选择Temurin发行版,直接去Adoptium官网(adoptium.net),首页就能看到“Latest Release”的下载按钮,点击后会进入版本选择页面。在“Operating System”选Windows,“Architecture”选x64或ARM64,“Package Type”选JDK,列表里会有.msi和.zip两种格式。
.msi是微软的安装包格式,双击后会弹出图形化引导界面,可以自动写入环境变量,对新手最友好。.zip是压缩包格式,解压即可用,适合喜欢手动控制安装位置、或者需要同时管理多个JDK版本的老手。两种方式后面我都会详细讲,你现在只需要决定走哪条路。
如果你使用的是Oracle官方JDK,在Oracle官网的“Software Downloads”页面里找到“Java 17”对应的Windows x64 Installer下载即可,下载时需要接受许可协议,没有账号的话注册一个Oracle账号就能下。
2.3 Win11下载和安装时的系统拦截
Win11对未签名或下载来源不明的软件拦截得比Win10严格。下载完安装包后,如果你双击时弹出SmartScreen蓝色警告框,提示“Windows已保护你的电脑”,先别紧张,这不一定说明软件有问题,只是系统对未知名发布者的默认警告。
对于从官方渠道下载的JDK安装包,你可以放心点击“更多信息→仍要运行”。如果你下载的是.zip压缩包,解压过程一般不会触发拦截,但首次运行其中的java.exe命令时,防火墙弹窗可能会跳出来询问是否允许网络访问。Java本身不需要联网运行,但这个弹窗出现时直接点“取消”也不影响使用。
有个容易被忽略的小细节:很多浏览器会为下载文件附加上“Mark of the Web”标记,也就是属性里的“解除锁定”选项。如果你下载的.cmd脚本、.bat批处理文件双击后没反应,或者在脚本执行时报“此文件的来源不受信任”之类的错误,去文件属性里勾选“解除锁定”就能解决。这个问题在Win11上特别常见。
3. 安装JDK:两种方式的具体操作
进入正题。我分别介绍.msi安装器和.zip免安装这两种方式。第一种适合大部分人,第二种适合需要灵活控制版本和管理多个JDK的人。你自己选一条路走就行。
3.1 使用安装器方式(.msi / .exe)
这个方法最无脑,跟着向导点“下一步”就行,但有几个关键步骤要注意。以Temurin的.msi安装包为例,双击运行后第一步会让你选择安装路径,默认是C:\Program Files\Eclipse Adoptium\jdk-17.0.xx.xx。C盘空间足够的话,用默认路径没问题;如果C盘紧张,建议改装到D盘,但路径里不要出现中文和空格。
接下来的“Set JAVA_HOME variable”选项页是关键。这页会直接询问你是否要把Java添加到PATH环境变量、是否设置JAVA_HOME,以及是否安装JavaSoft(Oracle注册表键)。这里建议全部勾选,并且把“JAVA_HOME”选项设置为“Will be installed on local hard drive”,也就是把JAVA_HOME变量指到当前这个JDK安装路径。这样安装完系统就自动帮你把环境变量配好了,省得后面手动操作。
还有一点,安装过程中如果系统提示“需要提升权限”或者UAC弹窗,点击“是”允许即可。因为把文件写入Program Files目录和修改系统环境变量都需要管理员权限。安装完成后,直接打开一个新的命令提示符窗口,输入java -version,如果能输出版本信息,说明安装成功。
3.2 使用压缩包方式(.zip)
压缩包方式看起来比安装器多一点手动步骤,但优势非常明显:解压即用、卸载方便(删文件夹就行)、版本切换灵活。我个人的习惯是,把下载好的zip包解压后放到一个固定目录,比如D:\Java\jdk-17,然后把所有的JDK版本都放在D:\Java目录下,用版本号区分文件夹。
解压操作在Win11里很简单,可以右键点击zip文件,选择“全部解压缩”,然后在向导窗口里选好目标路径,点击“解压缩”即可。解压完成后,进入解压目录,确认bin文件夹里有java.exe和javac.exe这两个文件,这是JDK自带的运行器,环境变量将来要指向的bin就是这里。
使用zip方式也要说清楚一个前提:下载zip包时,请确保你下载的是JDK而不是JRE包,两者的文件名相似但内容差很多。JDK包解压后除了bin目录,还会有include、lib、legal、conf等目录,而JRE包一般只有bin和lib。如果你只想要运行Java程序,JRE就够;但想开发和学习Java,必须装JDK。
3.3 多版本JDK共存与切换
很多人装完一个JDK后发现,自己手头的老项目需要Java 8,新项目又要用Java 17,这时候切换版本就变得很关键。如果你的系统里同时装了多个JDK,环境变量PATH中只会有一个路径在那生效,而PATH的查找顺序决定了用得是哪个版本。
解决多版本共存问题的方法其实很简单:不要直接在PATH里写JDK的具体路径,而是先把路径写成JAVA_HOME的变量引用。比如建一个C:\Program Files\Java下的多个版本目录,然后在环境变量里设置JAVA_HOME=C:\Program Files\Java\jdk-8.0.xx,PATH里写%JAVA_HOME%\bin。以后想切换版本,只需要改JAVA_HOME这一个变量的值,PATH完全不用动。
如果你嫌手动改环境变量麻烦,社区里也有工具可以帮你管理,比如Scoop或SDKMAN(SDKMAN主要面向Linux/macOS,Windows用户可以用Scoop更方便)。Scoop可以让你用scoop install java/temurin17这种命令一键装JDK,下次切换到另一个版本也只需一条命令。不过这些工具需要额外安装和配置,新手前期建议还是老老实实学手动方式,先把原理搞明白,工具只是锦上添花。
4. 环境变量配置:JAVA_HOME与PATH的正确姿势
这一步是翻车重灾区。很多人的Java装好了,环境变量配置错了,导致命令窗口始终提示“java不是内部或外部命令”。所以这一节我讲得细一些,把“为什么”也讲清楚。
4.1 为什么要配环境变量
当你在命令提示符或PowerShell里输入java并回车时,系统会在当前目录和PATH环境变量所指定的所有目录里搜索名为java.exe的可执行文件。只要找到了就执行,找不到就报“不是内部或外部命令”。你JDK的bin目录里明明有java.exe,系统不知道去那找它,所以报错。配置环境变量的本质,就是把JDK的bin目录路径告诉系统,让系统知道去哪里调用这些命令。
环境变量分为用户变量和系统变量两种。用户变量只对当前用户生效,系统变量对这台电脑所有用户生效。改环境变量时看到对话框里的两个列表框不要懵:上面是用户变量,下面是系统变量,PATH变量在两边都可能存在。建议大家优先修改用户变量,避免权限问题和污染系统级配置,尤其当这台电脑是公司公用机器时。
4.2 JAVA_HOME变量配置
JAVA_HOME是一个约定俗成的变量名,用来指向JDK的安装目录。有些软件(比如Tomcat、Maven、Gradle、IntelliJ IDEA)在启动时会主动读取JAVA_HOME,如果你不设置它,这些工具可能无法找到Java。所以哪怕有些教程说“不配JAVA_HOME也能跑”,实际生产环境里该配还是得配。
配置路径:在Win11桌面空白处右键,选择“显示更多选项”来展开传统菜单,然后点击“个性化”或直接选择“显示设置”都没有环境变量入口。正确做法是:右键点击“此电脑”,选择“显示更多选项→属性”,在弹出的系统窗口中点击“高级系统设置”,再点击“环境变量”。嫌这个操作链路长的,还可以直接按Win + R,输入sysdm.cpl回车,瞬间就能打开系统属性,速度比鼠标点快得多。在Win11的“设置→系统→系统信息”里也有“高级系统设置”的入口。
打开环境变量界面后在用户变量区域点击“新建”,变量名填JAVA_HOME,变量值填刚才JDK的安装路径。比如你走的是安装器路线,路径通常是C:\Program Files\Eclipse Adoptium\jdk-17.0.10.7;走的是zip路线,路径就是你解压到的那个文件夹。填完点击“确定”保存。
4.3 PATH变量配置
PATH是系统查找可执行文件的路径列表。配置好JAVA_HOME以后,把%JAVA_HOME%\bin加入PATH,这样系统会通过JAVA_HOME间接找到JDK的bin目录,后续想切换JDK版本,只需要改JAVA_HOME一个变量。
在环境变量界面找到Path这一项,双击打开编辑框。Win11和Win10的编辑界面差不多,是一个垂直列表框。点击“新建”按钮,然后输入%JAVA_HOME%\bin,回车确认。输入的时候一定要原样输入百分号,不要把%JAVA_HOME%直接理解成具体路径,因为环境变量的引用就是靠百分号包裹的。
这里有个小坑要说明:系统Path里可能已经存在一个C:\Program Files\Common Files\Oracle\Java\javapath之类的路径,这是Oracle JDK安装时自带的,它优先于你自己的JAVA_HOME\bin生效。如果你在安装新版JDK之后发现java -version显示的版本不对,十有八九是这个javapath在捣乱。解决方法是把Path列表中指向新旧JDK的所有条目理顺,保留你真正需要的那一个,把其他路径删掉。
4.4 CLASSPATH还需要配置吗
很多老教程会让你配置一个叫CLASSPATH的环境变量,变量值填.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。但在JDK 9之后,因为模块化系统的引入,这些jar包已经改名或不再需要直接引用,CLASSPATH的默认值也不再依赖外部配置。所以现在的标准做法是:不配置CLASSPATH,完全靠javac和java的默认类加载机制。
如果是从老教程学过来的读者,可能会觉得“不配CLASSPATH会不会有什么问题”。放心,JDK 9以上版本、以及所有较新的开发工具,都不要求你手动设置CLASSPATH。乱设置反而可能导致依赖路径错乱,出现莫名其妙的“找不到或无法加载主类”错误。如果你电脑里已经有了一个CLASSPATH变量,建议直接删掉,保持环境干净。
5. 验证安装和第一个Java程序
环境配置完,到验证环节了。这里的验证分两步:第一步是在命令行确认Java本身正常工作,第二步是写一个最简单的Java程序跑一遍编译和运行流程,这能同时验证javac和java两个核心命令。
5.1 命令行验证
配置环境变量后,一定要打开一个全新的命令行窗口再验证。这个细节非常关键:如果你在配置前已经打开了命令提示符或PowerShell窗口,那么那个窗口里的环境变量还是老的,输入java -version大概率还是报错。所以在修改环境变量后,先把所有旧的命令行窗口关掉,再重新打开。
打开命令行最简单的方式是按Win + R,输入cmd回车;或者按Win + X选择“终端(管理员)”。在命令行里一次输入以下命令依次验证:
java -version正常情况下会输出类似下面的信息:
java version "17.0.10" 2024-01-16 LTS Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-1) Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-1, mixed mode, sharing)然后再验证javac:
javac -version输出类似:
javac 17.0.10如果上面两个命令都能正常输出版本信息,说明JDK安装和环境变量配置已经成功。如果java能正常运行但javac报“不是内部或外部命令”,说明PATH中指向的路径是JRE而不是JDK,或者是某个不带编译器的Java运行时在干扰。
5.2 写个HelloWorld测试编译运行
命令行验证通过后,再走一遍完整的Java开发流程,确保编译器工作正常。在手头没有任何IDE的情况下,最原始的方式就是用记事本写源码文件。在D盘或用户目录下建一个文件夹,比如D:\JavaDemo,在里面新建一个文本文件,并修改名为HelloJava.java。
用记事本打开,输入以下代码:
public class HelloJava { public static void main(String[] args) { System.out.println("Hello, Java on Win11!"); } }这里要提醒一个Win11和Java编码的兼容性问题:Java源码默认编码在较新版本JDK里是UTF-8,而Win11记事本默认保存的编码也是UTF-8,两者正好匹配。如果你用的是Win10时代的GBK编码记事本,或者从网页上复制代码到记事本里保存成了ANSI格式,那么编译时可能会出现乱码或编码错误。最稳妥的做法是在记事本“文件→另存为”里,把编码明确选为“UTF-8”。
写完保存后,在当前目录打开命令行(在文件夹地址栏输入cmd回车即可),执行编译命令:
javac HelloJava.java这个命令没有任何输出说明编译成功,并在当前目录生成一个HelloJava.class文件。然后运行:
java HelloJava注意运行时不要带.class后缀,正确写法是java HelloJava而不是java HelloJava.class。如果一切正常,屏幕上会输出:
Hello, Java on Win11!看到这行字,你的Java环境就算彻底打通了。
5.3 IDE里的验证
命令行验证通过后,如果你想用IDE写Java代码,还需要确认IDE能正确识别JDK。以最常用的IntelliJ IDEA为例,打开IDEA后进入“File→Project Structure→SDKs”,点击加号添加JDK,然后选择JDK安装路径。IDEA会自动识别版本号,如果能正确显示17.0.10之类的版本,说明一切正常。
如果你使用的IDE是Eclipse,那么在启动后选择工作空间时,“Installed JREs”那里添加JDK目录即可。新版IDEA在新建项目时也能直接选择JDK版本,如果下拉列表里空白,大概率是因为IDEA没有找到JAVA_HOME变量,需要去检查一下环境变量是否配置正确。
6. 常见问题与排查技巧实录
这一节我把实际操作中最常遇到的问题整理出来,每个问题都对应一个具体的排查思路。这些问题很多是我自己踩过的坑,也经常在社区里看到别人问,如果你遇到类似的问题,可以直接按图索骥。
6.1 命令窗口提示“不是内部或外部命令”
这是新手最常遇见的报错。原因几乎百分之百是PATH环境变量没配好,或者配好了但是配置前打开的窗口没有关闭重新开。排查时先确认几点:JAVA_HOME确实指向了正确的JDK目录;PATH里确实存在%JAVA_HOME%\bin这条记录;你输入命令的窗口是修改环境变量后新打开的。
还有一个比较隐藏的坑:Win11的终端默认是PowerShell,PowerShell识别命令的机制和传统cmd略有差别,PATH变量引用虽然一致,但如果你修改的是系统变量而不是用户变量,PowerShell里可能要在新窗口里才能看到,具体表现为改前改后没有任何变化。这时候可以输入命令查看当前PATH:
$env:Path这样能直观看到PowerShell当前解析出来的PATH值,如果里面没有你的JDK路径,说明修改没生效或者改错变量区域。
6.2 java和javac版本不一致
java -version显示的是1.8,而javac -version显示的是17,这种版本错乱问题非常典型。原因通常是系统里存在多个JDK/JRE,PATH中的查找顺序把你带到了旧版本。
检查方法:在命令行输入where java和where javac,Windows会把所有找到的可执行文件路径按优先级列出来。如果你看到列表里有C:\Program Files\Common Files\Oracle\Java\javapath,基本可以断定是这个中间路径的问题。解决办法是把PATH列表中不需要的Java相关路径删掉,只保留%JAVA_HOME%\bin。
6.3 环境变量改了但必须重启才能生效
有些用户配置好环境变量后,发现新开的窗口里java -version依然不是最新版本,但重启电脑后就好了。这个现象多半不是配置问题,而是某个应用缓存的旧环境变量,或者PowerShell会话被某个组件保留了旧配置。多数情况下,彻底关闭所有终端窗口再重开就能解决,不需要重启电脑。
如果关闭窗口后还是不行,可以用命令手动刷新环境变量:
setx JAVA_HOME "你的JDK路径"不过setx命令有个毛病:它会生成一个只包含你设置内容的变量,如果你原有变量里有其他值,setx可能会把原来的内容截断,导致其他程序找不到原来依赖的变量。所以我一般只推荐用setx来排查问题,不建议把它作为日常配置环境变量的手段。最规范的方式还是通过系统属性的图形界面手动编辑。
6.4 JDK装完后C盘空间告急
Win11的C盘空间本来就不宽裕,装完一个JDK加上缓存,几百MB就没了。如果你用的是安装器方式装在默认路径,想挪走只能卸载重装,非常麻烦。所以我在前面就建议,如果C盘空间紧张,用zip方式解压到D盘更灵活。
还有一种情况是你的用户目录下积累了大量的Maven缓存、Gradle缓存、IDE索引文件,这些和JDK无关,但都会被错误地归因到“Java环境太大”。用清理工具扫描时注意区分,别把JDK目录下的文件当作垃圾清理掉。
6.5 Win11右键菜单和系统设置找不到入口
Win11把传统右键菜单折叠进了“显示更多选项”,很多老用户第一次点右键看不到属性、编辑之类的选项,以为系统出问题了。其实只要在右键菜单底部找到“显示更多选项”按钮,点击后就是Win10风格的传统菜单。环境变量入口最快的方式还是Win + R输入sysdm.cpl,这个命令在Win11里依然好用。
如果你需要频繁打开系统属性窗口,可以把“此电脑”图标加到桌面上,右键它选择“属性”,在弹出的“系统”页面右上角就有“高级系统设置”链接。在Win11的“设置→系统→系统信息”里也能看到“高级系统设置”入口,只是层级稍深。
6.6 常见问题速查表
为了让你以后出问题能快速找到对应解法,我把上面这些情况和一些边缘问题汇总成了一张速查表。
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 运行java提示“不是内部或外部命令” | PATH中无JDK的bin目录,或JAVA_HOME错误 | 重新配置JAVA_HOME和PATH,打开新窗口重试 |
| javac不是内部命令,但java可以运行 | PATH指向JRE而非JDK,或JDK安装不完整 | 把PATH调整到JDK目录下的bin,确认bin中是否有javac.exe |
| java -version和javac -version版本不一致 | 多个JDK/JRE共存,PATH顺序被干扰 | 用where java排查路径,删除无关的Java路径,只保留JAVA_HOME引用 |
| PowerShell里命令无效但cmd里正常 | PowerShell会话缓存或作用域问题 | 关闭所有终端重新打开,或直接输入完整路径测试 |
| 运行Java程序出现“找不到或无法加载主类” | 类名与文件名不一致,或运行时带了.class后缀 | 检查类名与public class名称完全一致,运行时不带.class |
| 编译Java源码乱码 | 源文件编码与JDK默认编码不一致 | 用UTF-8编码保存源码文件,重新编译 |
| 双击.cmd或.bat脚本没有反应 | 文件来源不受信任,被Mark of the Web锁定 | 右键文件属性,勾选“解除锁定” |
| C盘空间紧张 | JDK安装在系统盘且体积大 | 使用zip方式安装到D盘,或卸载重装 |
| 下载JDK被SmartScreen拦截 | 未签名或下载来源提示 | 官方渠道下载,点击“仍要运行” |
7. 再分享几个亲测好用的安装习惯
最后再聊几个我在实际安装过程中总结出来的小习惯,谈不上什么高深理论,但对日常折腾电脑、换电脑、重装系统时真的很有帮助。
第一个习惯是把JDK装到D盘或者一个独立的开发盘里。我见过不少同事把JDK装在C盘的默认路径,后来C盘满了,系统环境出各种莫名其妙的问题,整个过程折腾下来特别费时间。把JDK规划到非系统盘,以后重装系统只需要重新配置一下环境变量,连JDK都不用重新下载解压。
第二个习惯是给JDK解压目录起一个非常明确的名字,不要用那种带日期、带一堆数字的默认解压文件夹。我自己的目录结构是D:\Java\jdk-17和D:\Java\jdk-8这种,一眼就能看出是什么版本。这样将来设置JAVA_HOME、切换版本都清晰得多,也不容易把多个版本的目录搞混。
第三个习惯是不管用哪个版本,都顺手把JAVA_HOME配上。就算某些场景下不配JAVA_HOME也能运行Java命令,但像Tomcat、Maven、Gradle这些工具一定会读取JAVA_HOME,不配等到用的时候报错再来排查,就很被动了。
第四个习惯是在命令行验证完java和javac之后,顺手把IDEA之类的IDE打开,创建一个简单的Java项目跑一下,确认IDE这边也能正常识别JDK。这一步很多人会忽略,等到写代码时发现IDE里没有Java SDK,又得回头折腾,反而更耽误时间。
把这些习惯养成之后,你在Win11上装Java这件事基本就是一次到位。以后换了新电脑、重装了系统,照着这个流程再走一遍,十分钟之内就能把所有环境全部拉起来。
我个人在实际操作中的体会是,Java环境安装这件事,真的不是当你下载安装包那个瞬间完成的,而是在你验证完第一个程序之后才算真正尘埃落定。很多人说Java环境难配,难的不是命令和步骤,而是对“环境变量”“PATH搜索顺序”“JDK与JRE关系”这些底层机制的理解。把这些想通了,不管Win11怎么改界面、后面的JDK版本出到多少,对你来说都只是换个下载链接而已。