ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Win10安装JDK1.8完整教程:从下载到环境变量配置与排错

Win10安装JDK1.8完整教程:从下载到环境变量配置与排错 刚转行做开发或者要在老项目里接着写代码的朋友十有八九会碰到一个问题装JDK。而且装的多半是JDK1.8。这不是情怀问题是现实问题——大量企业项目、老系统的运行环境都钉在Java 8上你电脑上装个17甚至21编译能过一部署到服务器就各种不兼容。再加上很多教学视频、框架文档默认还是1.8所以新人的第一道坎往往就是如何在Win10上正确安装JDK1.8。我见过太多人栽在环境变量上也见过不少人在官网找半天下载入口。这篇文章就把整个流程拆开揉碎从下载到验证再到常见报错排查一步不落讲清楚。你按步骤走十分钟之内能跑通java -version。1. 安装前必须想明白的几件事1.1 为什么大家都在找JDK1.8先说个扎心的事实JDK1.8早在2019年1月就停止免费商用更新了2020年底Oracle连个人使用的更新也停了。但企业项目里Java 8依然是存量主力。很多框架的低版本只保证在Java 8上稳定运行Spring Boot 2.x、Hadoop生态、Android开发工具链全都和Java 8深度绑定。你学Spring Cloud、搭大数据环境、跑老项目不用1.8后面报错一堆。所以我给新人的建议很直接电脑上第一套Java环境装1.8版本选8u201或8u202。这两个是Java 8最后一个免费商用更新版本兼容性、稳定性都经过了大规模验证。网上说8u202以后收费或者不能用其实指的是商用授权问题个人学习和开发完全不影响。1.2 先确认你的系统是64位还是32位下载JDK前必须先搞明白系统架构。Win10绝大多数是64位但有些老电脑、精简版系统也有32位。看错的话安装能进行但有些开发工具会提示找不到合适的JVM。查看方法很简单右键此电脑选属性在系统栏里看系统类型。显示64位操作系统就下载Windows x64安装包显示32位操作系统就下载Windows x86安装包。顺带一提JDK1.8的安装包有两种格式一种是.exe图形化安装程序适合新手一路下一步另一种是.zip压缩包解压后配置环境变量即可适合不想往注册表里写东西的进阶用户。第一次安装老老实实用exe别折腾。1.3 JDK和JRE的区别别搞混了JDK是Java Development Kit开发工具包里面包含了JRE还带编译器javac、调试工具、打包工具等。JRE是Java Runtime Environment运行时环境只负责跑Java程序不能编译。你要写代码必须装JDK只是运行别人打包好的jar包才需要单独装JRE。安装JDK1.8过程中向导会问你是否要安装公共JRE。新手很容易在这里犹豫——装还是不装我的建议是不需要。JDK自带的私有JRE已经够用了公共JRE装在系统里反而容易造成环境变量混乱。后面16版本以后Oracle干脆取消了独立JRE安装包官方也默认了这种思路。2. 下载安装包官网入口与镜像选择2.1 Oracle官网的下载路径下载JDK1.8最正经的渠道是Oracle官网。但官网的页面设计得比较绕很多人进去一脸懵。正确路径是这样的打开Oracle官网顶部菜单找到Products在下拉里找Java。进入Java页面后往下翻找到Downloads再点Java Archive或直接访问Java Archive页面。在归档列表里往下滚找到Java SE 8展开就能看到一堆版本号。认准8u201或8u202点对应的Windows x64或Windows x86链接。这时会要求你登录Oracle账号登录后就开始下载了。这里有个坑Oracle官网访问速度时快时慢有时候页面加载半天甚至直接超时。这不是你电脑的问题是服务器响应慢。多刷新几次或者换到流量低谷时段比如早上再试。如果实在打不开就找国内靠谱的镜像站。2.2 用镜像站下载的注意事项国内很多高校、云厂商都做了Oracle JDK镜像访问速度快得多。但用镜像站要留个心眼第一认准域名里有edu.cn、aliyun、huaweicloud、tencent这些标识的站点个人搭的下载站尽量避开你没法保证安装包有没有被动手脚。第二下载后务必核对文件大小。8u201的Windows x64 exe安装包大概是209MB左右如果下载下来只有几十MB那肯定不对删掉重下。第三如果下载到的是.tar.gz压缩包那是Linux版本Windows上解压了也不能直接装exe注意区分文件名里的windows-x64字样。下载完成后先把安装包放到一个固定位置比如D:\Downloads不要直接双击就装后面配置环境变量还要用安装路径呢。3. 安装向导里的几个关键岔路口3.1 安装路径的选择标准双击下载好的jdk-8u201-windows-x64.exe会进入安装向导。一路Next的过程中有一个界面会让你选择安装路径。默认路径是C:\Program Files\Java\jdk1.8.0_201这个路径建议改掉原因有三个一是路径里有空格。虽然大多数工具能处理但个别脚本和配置文件写死路径时容易出问题。二是C盘空间宝贵。JDK本身不大但后续安装IDE、Maven仓库、SDK等都会占C盘前期能挪就挪。三是路径越短越好记。后面配环境变量、写脚本都要引用这个路径太长容易打错。我自己的习惯是装到D:\Java\jdk1.8.0_202注意安装路径不要带中文不要带空格不要带这类特殊字符。有些人的用户名是中文默认路径会变成C:\Users\张三\...这在后续配置环境变量时非常容易出问题。3.2 公共JRE到底装不装前面提到过安装过程中会出现一个公共JRE的安装选项。默认是勾选的点击此功能将不可用或者在下拉框里选不安装此功能然后继续Next即可。这里解释一下原理JDK安装目录下自带一个jre子文件夹这就是私有JREjavac、java命令都能正常运行。公共JRE是装到C:\Program Files\Java\jre1.8.0_201的它会被注册到系统里可能和某些老软件自动关联。但对开发来说它没什么用处还会让系统里多一套Java运行时后面排查版本问题时容易迷糊。安装完成后打开D:\Java\jdk1.8.0_202你应该能看到bin、lib、jre、include这些文件夹。其中bin里就有java.exe和javac.exe这是后面验证环境的关键。4. 环境变量配置的完整链路与原理4.1 JAVA_HOME、PATH、CLASSPATH各管什么事安装JDK只是第一步真正的重点是环境变量。不少新人装完直接打开cmd输java发现提示不是内部或外部命令就是因为没配环境变量。环境变量里需要配三个东西JAVA_HOME告诉系统JDK装在哪个位置。很多开发工具Tomcat、IDEA、Maven都是通过这个变量来找Java的所以它一定要配。PATH让系统在命令行里能找到java.exe和javac.exe。Windows搜索命令时会依次查找当前目录、然后是PATH里列出的路径。不把JDK的bin目录加进PATH你在任意目录下敲java -version自然找不到命令。CLASSPATH指定类文件的搜索路径。JDK1.5以后其实可以不配但很多老教程、老项目依然要求配加上也不影响。保险起见我还是建议配尤其你要跑老代码的话。4.2 一步步配置环境变量在Windows搜索框输入环境变量打开编辑系统环境变量在高级选项卡里点环境变量。下面分系统变量和用户变量两种我建议在系统变量里配这样所有用户都能用。第一步新建JAVA_HOME变量名JAVA_HOME 变量值D:\Java\jdk1.8.0_202注意变量值要填你自己实际的安装路径不要带后置的反斜杠也不要写成D:\Java\jdk1.8.0_202\bin。JAVA_HOME的值就是JDK的根目录。第二步编辑PATH。找到系统变量里的Path双击或点编辑在末尾追加%JAVA_HOME%\bin %JAVA_HOME%\jre\binWin10的PATH编辑界面是一行一个条目点新建分别添加这两条即可。注意不要删掉原来已有的条目不要用分号拼接那是老系统的写法。第三步新建CLASSPATH变量名CLASSPATH 变量值.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar最前面的.代表当前目录它让Java在执行命令时先查找当前目录下有没有需要编译或运行的类文件。如果你忘记加这个点java运行class文件时会收到找不到主类的报错这个坑后面细说。配置完成后点确定关闭所有窗口。关键一步必须重新打开一个新的cmd窗口已经开着的命令行窗口不会刷新环境变量。这一步很多人栽过配好了变量在旧窗口里验证半天没反应以为配置错了。4.3 验证环境java和javac都过才算数打开新的cmd窗口依次输入三条命令java -version javac -version echo %JAVA_HOME%如果配置正确java -version会输出类似这样的信息java version 1.8.0_202 Java(TM) SE Runtime Environment (build 1.8.0_202-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)javac -version会输出javac 1.8.0_202echo %JAVA_HOME%会输出你配置的路径。这里要注意java -version能过不代表javac -version也能过。如果java正常但javac提示找不到命令说明你PATH里的%JAVA_HOME%\bin没有生效成功或者PATH里还有其他JDK版本的bin路径占在前面。5. 命令行验证与常见报错排查5.1 一条HelloWorld跑通编译与执行环境变量配好后写个最简单的程序验证一下链路是否完整。新建文本文档输入public class HelloWorld { public static void main(String[] args) { System.out.println(HelloJava8); } }保存时文件名务必命名为HelloWorld.java和后缀.java一起保存。记事本默认会存成.txt你需要在另存为对话框里把保存类型改成所有文件再手动加上.java后缀。文件编码选ANSI或UTF-8无BOM否则中文注释、中文输出可能乱码。在文件所在目录的地址栏输入cmd回车就能直接打开定位到该目录的命令行窗口。然后执行javac HelloWorld.java java HelloWorld第一条命令会生成HelloWorld.class文件第二条命令输出HelloJava8。两条命令都成功说明JDK安装、环境变量配置、编译运行链路全部正常。5.2 高频报错排查表我在给团队新人和论坛帮别人看问题的时候收集了几个高频报错场景直接列成对照表方便排查报错现象可能原因解决办法java 不是内部或外部命令PATH里没配%JAVA_HOME%\bin重新检查PATH配置确认后重启cmdjavac 不是内部或外部命令同上或PATH被其他JDK版本抢占确认PATH里确实添加了%JAVA_HOME%\bin且没有其他JDK的bin路径排在前面java -version显示1.7或更老系统里装了老版JDKPATH里旧路径优先把新JDK的bin路径移到PATH最前面或卸载老版本Error: could not open ...\lib\amd64\jvm.cfgJAVA_HOME路径错误或JDK目录被移动过核对JAVA_HOME是否指向真实存在的JDK根目录找不到或无法加载主类 HelloWorld类名和文件名不一致或CLASSPATH没加当前目录的.核对类名与文件名完全一致CLASSPATH以.;开头javac 不是内部或外部命令但java正常PATH里只有%JAVA_HOME%\jre\bin没加%JAVA_HOME%\bin在PATH中补充%JAVA_HOME%\bin有一种情况要特别提醒你从官网下载的虽然是8u202但命令输出版本却是1.8.0_201或者别的版本这多半是因为电脑里已经有其他版本的JDK或者小版本号不一致。建议在安装新JDK前先通过控制面板→程序和功能看看有没有残留的Java相关组件有旧版本先卸掉再从环境变量里清理掉老的路径。5.3 多版本JDK共存的尝试有些人可能要在一台电脑上同时用JDK8和JDK11甚至JDK17。有个简单的做法装多个版本的JDK每个版本所在目录名不同环境变量的JAVA_HOME指向谁命令行里java -version就显示谁。但这里有个坑Win10安装过exe版的JDK后控制面板→程序和功能里会出现对应的Java条目这会影响CLASSPATH和部分依赖注册表的工具。你换JAVA_HOME指向另一个版本时有些老程序可能还是去找注册表里的默认版本绕过了环境变量造成版本不一致的困惑。所以多版本共存我建议用zip压缩包版的JDK解压到不同目录需要哪个版本就把JAVA_HOME指过去完全可控。新手阶段其实不需要这么折腾老老实实只装1.8先把基础跑通。6. 图文排版的实操说明每个关键画面长什么样6.1 下载页面的判断依据既然标题写了图文详解那就把每个关键步骤画面上应该出现什么说明白你照着核对心里就有底。打开Oracle下载页面时核心要认准两个信息一是Java SE Development Kit 8u202这个标题二是操作系统和架构复选框。分别选择Windows和x64下面就会出现jdk-8u202-windows-x64.exe的下载链接。如果你下载的是x86那就是32位64位Windows也能装但性能会受影响而且很多现代工具链默认不支持32位JVM。如果进入页面后看到的是JDK21、JDK23等新版本就是你站错地方了回到Java Archive找Java SE 8分类那里才是老版本的归档区域。6.2 安装向导每步该看到什么双击exe安装包后第一个看到的界面是是否允许此应用对你的设备进行更改这是UAC弹窗点是。随后进入Java安装向导第一页显示Welcome to the Installation of Java SE Development Kit 8u202点Next。关键的一页是Custom Setup这里会显示两个功能组件一个叫Development Tools开发工具一个叫Public JRE。Development Tools是必须的它包含了编译器、调试器和运行时。Public JRE你按前面说的在下拉框选择Entire feature will be unavailable就是不安装公共JRE。然后进入Change Folder选择安装目录。这里界面会有个路径输入框直接填入D:\Java\jdk1.8.0_202确认路径正确后点Next等待安装进度条走完。最后一步弹窗提示Java SE Development Kit 8u202 Successfully Installed点击Close结束。这时候去看D:\Java\jdk1.8.0_202目录应该能看到bin等子目录都在。6.3 环境变量配置界面的截图对照打开环境变量对话框后上半部分是用户变量下半部分是系统变量。你在系统变量区域点新建会弹出一个新建系统变量的小窗口。JAVA_HOME这边变量名那一栏填JAVA_HOME变量值那一栏填D:\Java\jdk1.8.0_202然后点确定。接着在系统变量列表里找Path双击弹出编辑环境变量窗口右上角有新建按钮依次添加两行%JAVA_HOME%\bin%JAVA_HOME%\jre\bin编辑完成后点确定再为CLASSPATH新建一条系统变量内容为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar确认后逐层关闭对话框。这些往按钮对应哪个位置、填什么值按这个描述去对号入座基本不会有偏差。6.4 验证成功与失败画面的区分当你打开新cmd窗口输入java -version画面无非两种结果。成功的画面是连续三行开头是java version 1.8.0_202。这个1.8.0_202就代表版本号没问题后面跟着的Java(TM) SE Runtime Environment和Java HotSpot(TM) 64-Bit Server VM都是正常输出看到这些就可以放心了。失败的画面常见是java 不是内部或外部命令有时候还跟着一句可运行的程序或批处理文件。这说明Windows压根没找到java.exe这个文件问题出在PATH上赶紧去检查%JAVA_HOME%\bin有没有写对JAVA_HOME到底指向哪里。还有种失败画面是java -version打了之后提示Error opening registry key这通常和Oracle公共JRE注册表信息残留有关或者你装过多个JDK之后卸载不干净。遇到这种最彻底的方案是把所有Java相关组件卸载干净把环境变量里的Java相关条目删掉重启电脑再重新装一次。7. 几个容易被忽略的小细节7.1 IDEA、Maven等工具里的JVM位置很多新人装完JDK命令行验证通过就以为万事大吉。结果打开IntelliJ IDEA一编译报错提示没有配置JRE或Invalid JDK。原因很简单IDEA默认不会自动从JAVA_HOME里读取JDK它需要你在项目结构Project Structure里手动指定JDK目录。新建项目时在SDK一栏点Add JDK选择D:\Java\jdk1.8.0_202这个目录IDEA会自动识别出Java version 1.8。Maven也是类似的在settings.xml里可以用JAVA_HOME环境变量指到对应JDK也可以在IDE里单独指定。总之命令行能用不代表所有图形化工具都能用遇到工具找不到JDK先去看工具的SDK位置配置。7.2 在线安装开发包有时会自带JDK顺带提一个容易混淆的场景有些开发环境比如Android Studio它自带了某个版本的JBRJetBrains Runtime或者OpenJDK安装的时候不会动你系统的JAVA_HOME。你在命令行里输java -version显示的可能是系统中另外一套JDK和Android Studio用的那套根本不是一回事。所以排查问题时要分清是命令行环境还是IDE环境。命令行里java -version的版本取决于PATH环境变量和JAVA_HOMEIDE里的Java版本取决于IDE的配置。两边不一致是常态不用慌。7.3 国内镜像与离线安装包的管理建议前面聊过官网慢的问题这里再补充一个我自己的经验JDK安装包下载一次就不太需要重复下载了建议把安装包放到一个固定目录比如D:\Software\Java文件名不要改后面重装系统或者给别人装机器时直接用U盘拷过去就行省去重新找下载入口的麻烦。如果给别人装记得提醒对方装完之后要登出再登入Windows或者重启一下电脑否则某些软件比如开了系统代理的终端工具还是不会刷新新的环境变量。表面上配好了,一运行就报错说的就是这种场景。7.4 卸载JDK的正确姿势有朝一日你想从JDK8升级到JDK11卸载JDK1.8时不要太粗暴。建议流程是先到控制面板→程序和功能卸载所有Java开头的组件然后在环境变量里把JAVA_HOME、CLASSPATH以及PATH里残留的Java路径条目全部删掉最后到C:\Program Files\Java和C:\ProgramData\Oracle\Java目录检查有残留文件夹就一并删除。注意卸载前先确认其他软件有没有依赖当前的JDK。我有一次在公司电脑上卸载旧版JDK装新版结果一个内部的调度工具直接起不来了一看日志它把JDK路径写死在了配置文件里和系统环境变量没关系。这种写死路径的情况卸载前必须自己排查清楚。8. 一次装完后的自测清单装完JDK建议按这个清单走一遍就当给自己做个验收java -version输出1.8.0_201或1.8.0_202。javac -version输出javac 1.8.0_201或1.8.0_202。echo %JAVA_HOME%输出的路径里能看到bin、jre子目录。在任意非JDK目录下的cmd窗口里java和javac命令都能用。从官网或教程抄一个HelloWorld能编译、能运行。这几项全过你的环境就装瓷实了。后面的Spring Boot、Maven、Tomcat、数据库连接池全都建立在这套环境之上基础打牢后面少踩许多没必要的坑。最后再分享一个小细节配置环境变量的时候肯定有人会图省事直接在用户变量里加了一个JAVA_HOME系统变量里也加了一个。两个同时存在时Windows会优先用系统变量里那个。如果你后面发现改了JAVA_HOME不生效先查查是不是两个地方都配了只留一处问题通常就解决了。这套玩法我帮人排查过无数次多半都是这种毫不起眼的小位置出了问题。
返回列表