Win10系统JDK11安装与环境变量配置全攻略(附JRE生成指南)
1. 为什么要在Win10上安装JDK 11先搞懂这些再动手如果你刚开始学Java或者准备把手头的项目升级到更新的Java版本那么JDK 11绝对是一个绕不开的“明星选手”。我自己在项目里从JDK 8升级到JDK 11的时候也花了不少时间研究今天就把我踩过的坑和总结的经验用最直白的话分享给你。首先你得知道JDK是啥。简单来说JDK就是Java开发工具包你想写Java程序、编译Java代码没它不行。它就像你做饭需要的全套锅碗瓢盆和食材。而JRE是Java运行时环境如果你的程序写好了只想在别人的电脑上运行那只需要安装JRE就行它相当于一个“厨房”能让你做好的“饭菜”Java程序跑起来。从JDK 9开始Oracle调整了发布策略一个很重要的变化就是安装包默认不再包含一个独立的JRE文件夹。这对很多习惯了老版本比如JDK 8的开发者来说一开始会有点懵觉得“我的JRE去哪了”。别急后面我会详细教你怎么自己生成一个其实很简单。那为什么我推荐你现在就用JDK 11呢第一它是长期支持版本。你可以把它理解成一个“稳定版”官方会提供长时间的技术支持和安全更新用起来更放心特别适合企业项目或者长期学习。第二它带来了很多实用的新特性比如更简洁的启动单文件程序、更好的性能还有对现代HTTP/2的原生支持HttpClientAPI写网络应用会更顺手。虽然现在JDK的版本号已经更新到二十几了但JDK 11作为经典的LTS版本依然是目前生产环境中最主流、最稳妥的选择之一。所以无论你是Java新手准备搭建第一个开发环境还是老手想升级工具链这篇针对Windows 10的JDK 11安装配置指南都会手把手带你走一遍。我会尽量把每一步的原理和操作都讲清楚让你不仅“知其然”还能“知其所以然”以后遇到问题自己也能排查。2. 第一步下载JDK 11安装包选对版本很重要万事开头难下载是第一步但这里有几个关键选择选错了后面可能就会遇到麻烦。首先你得知道去哪下载。最官方的来源当然是Oracle的官网。不过从某个时间点开始Oracle要求下载JDK必须先登录Oracle账户这对一些朋友来说可能有点麻烦。别担心除了官网我们还有非常好的选择——OpenJDK。OpenJDK是Java平台的开源实现由社区和包括Oracle在内的多家公司共同维护。从JDK 11开始Oracle JDK和OpenJDK在功能上已经基本一致。对于学习和一般开发使用我强烈推荐直接使用OpenJDK的构建版本比如Adoptium原名AdoptOpenJDK或微软构建的版本。它们完全免费无需登录下载速度也更快。这里我以Adoptium为例因为它提供了清晰的界面和多种选择。你可以打开浏览器搜索“Adoptium JDK 11”或者直接访问其项目网站。进入下载页面后你会看到几个选项操作系统选择Windows。架构现在绝大多数电脑都是64位的所以选x64。如果你是非常老的电脑可能性很小才需要选x86。版本选择11并尽量选择最新的小版本号比如11.0.22。JVM实现这里通常有HotSpot和OpenJ9可选。HotSpot是Oracle官方的、历史最悠久的JVM兼容性最好绝大多数情况选它就行。OpenJ9是IBM开源的在某些场景下内存占用更优。作为初学者无脑选HotSpot即可。包类型你会看到.msi和.zip。.msi是Windows安装程序双击运行有图形界面引导安装过程会自动处理一些注册表项适合绝大多数用户。.zip是压缩包解压即用更绿色但需要完全手动配置环境变量适合喜欢自定义路径的高级用户。我的建议是如果你是第一次安装直接下载.msi安装包。整个过程就像安装QQ、微信一样简单不容易出错。下载完成后你会得到一个类似OpenJDK11U-jdk_x64_windows_hotspot_11.0.22_7.msi的文件记住它放在哪里了我们马上开始安装。3. 手把手安装JDK 11路径选择有讲究找到你下载好的.msi安装文件双击运行。安装过程本身非常直观但有两个地方需要你留意一下。首先你会看到一个欢迎界面直接点击“Next”。接下来就是最重要的步骤之一选择安装路径。安装程序通常会默认建议安装在C:\Program Files\目录下。对于系统软件放在C盘没问题。但如果你像我一样喜欢把开发工具都集中放在一个非系统盘比如D盘方便管理和备份那么可以点击“Change...”按钮。在弹出的窗口里你可以把路径修改成你喜欢的目录。我个人的习惯是在D盘创建一个Develop文件夹里面再建一个Java文件夹专门放各个版本的JDK。例如你可以设置为D:\Develop\Java\jdk-11。这里有个小技巧路径里尽量不要包含中文和空格。虽然现在的软件对中文路径的支持已经好了很多但为了避免一些潜在的、稀奇古怪的兼容性问题使用纯英文路径是最稳妥的选择。设置好路径后点击“Next”。下一个界面可能会让你选择要安装的组件。对于标准开发保持默认的全选状态即可直接点击“Next”。然后安装程序就会开始复制文件。这个过程很快通常几十秒就完成了。最后点击“Close”结束安装向导。至此JDK的核心文件就已经拷贝到你的电脑里了。但是如果你现在打开命令行输入java -version系统大概率会告诉你“不是内部或外部命令”。这是因为系统还不知道你刚刚安装的Java命令在哪里。接下来我们就需要通过配置“环境变量”来告诉系统这个位置。4. 配置环境变量让系统认识你的Java命令环境变量听起来有点技术性但其实你可以把它理解成系统的“通讯录”。当你在命令行里输入一个命令比如java系统会去这个“通讯录”里查找这个命令对应的程序文件在哪里。我们的任务就是把JDK里bin目录的地址写到这个“通讯录”里。具体操作步骤如下跟着我做一步都不会错打开环境变量设置窗口 在Windows 10的搜索框里或者按Win S键输入“环境变量”然后选择“编辑系统环境变量”。这会打开“系统属性”窗口并定位到“高级”选项卡。点击右下角的“环境变量(N)...”按钮。新建JAVA_HOME变量关键步骤 在打开的“环境变量”窗口中下半部分是“系统变量”这里设置的变量对所有用户都有效。我们点击“新建...”。变量名(N)输入JAVA_HOME。这个名字是约定俗成的很多Java相关的工具比如Maven、Tomcat都会读取这个变量来定位你的JDK。变量值(V)这里需要填入你刚才安装JDK的完整路径。如果你记不清了可以打开文件资源管理器进入你安装的目录比如D:\Develop\Java\jdk-11然后点击地址栏复制整个路径粘贴到这里。 完成后点击“确定”。这一步相当于在通讯录里登记了JDK的“家庭住址”。编辑Path变量添加执行路径 在“系统变量”列表里找到名为Path的变量不区分大小写选中它然后点击“编辑...”。Windows 10的Path变量编辑界面是一个列表非常清晰。 点击“新建”然后在出现的新行中输入%JAVA_HOME%\bin。 这里%JAVA_HOME%是一个引用它会被替换成你上一步设置的JDK路径。所以%JAVA_HOME%\bin实际上就指向了D:\Develop\Java\jdk-11\bin这个目录而java.exe、javac.exe这些关键命令都在这个bin目录下。 输入完毕后建议你点击“上移”按钮把这个新条目移动到列表的最顶部。这不是必须的但可以确保系统优先使用我们配置的JDK避免和电脑里可能存在的其他旧版本Java产生冲突。最后一路点击“确定”关闭所有窗口。环境变量配置的原理为什么配置了JAVA_HOME还要配置PathJAVA_HOME是一个“指针”它只记录了JDK的根目录。而Path变量则告诉系统当我要执行一个命令时应该去哪些目录里找可执行文件。我们把%JAVA_HOME%\bin加入Path就等于告诉系统“以后你在任何地方运行java或javac命令时请先到我指定的那个JDK目录下的bin文件夹里找找看。”5. 验证安装用命令行测试是否成功配置完环境变量后最重要的一步就是验证。我们需要打开一个新的命令行窗口来测试因为环境变量的更改需要重启命令行才能生效。按下Win R键输入cmd然后按回车打开命令提示符。在这个黑框框里我们依次输入三个命令来检查检查Java运行时版本输入java -version然后回车。 如果配置成功你会看到类似下面的输出信息openjdk version 11.0.22 2024-01-16 OpenJDK Runtime Environment Temurin-11.0.227 (build 11.0.227) OpenJDK 64-Bit Server VM Temurin-11.0.227 (build 11.0.227, mixed mode)这明确显示了你的JDK版本是11.0.22并且是OpenJDKTemurin是Adoptium的发行版名称。看到这个说明java命令已经可以正常工作了。检查Java编译器输入javac -version然后回车。 成功的输出会是javac 11.0.22javac是Java编译器用来把.java源代码文件编译成.class字节码文件。这个命令也能运行才意味着你的开发环境是完整的。运行一个简单命令输入java然后回车。 这个命令不带参数会输出Java命令的帮助信息列出所有可用的选项。如果出现一大串英文说明而不是“找不到命令”的错误那就再次证明了环境变量配置正确。如果出错了怎么办最常见的错误是“不是内部或外部命令也不是可运行的程序”。别慌按这个顺序排查检查路径回到环境变量设置双击JAVA_HOME确认里面的路径完全正确并且这个路径下确实有bin文件夹。检查Path确认Path变量里添加的条目是%JAVA_HOME%\bin并且没有拼写错误。重启命令行每次修改环境变量后必须关闭所有已打开的命令行窗口重新开一个新的设置才会生效。检查旧版本残留如果你电脑上以前装过其他版本的Java有可能在Path变量的其他位置比如C:\Program Files (x86)\Common Files\Oracle\Java\javapath存在旧的Java路径。你可以把这些旧的、指向其他Java版本的路径条目暂时删除或注释掉避免干扰。6. 解决JDK 11的“JRE消失”问题手动生成JRE指南正如开头提到的从JDK 9开始安装后的目录里你看不到一个独立的jre文件夹了。这可能会让一些依赖于传统JRE路径的旧版软件比如一些古老的桌面工具或教学软件找不到运行时环境。其实JDK 11本身包含了生成JRE的所有必要组件我们只需要动动手自己“造”一个出来。为什么需要手动生成JRE现代Java引入了模块化系统JPMS。JRE本质上就是JDK中用于运行程序的那部分模块的子集。Oracle不再预打包这个子集而是把选择权交给了开发者。你可以根据需要生成一个只包含你程序所需模块的精简JRE这能让分发出去的软件包体积更小。生成JRE的步骤其实非常简单只需要一条命令。打开命令提示符CMD关键是要用管理员身份运行因为可能会涉及到在程序安装目录创建文件夹。定位到你的JDK安装目录 在命令提示符里使用cd命令切换到你的JDK根目录。例如如果你的JDK安装在D:\Develop\Java\jdk-11就输入cd /d D:\Develop\Java\jdk-11注意空格和反斜杠。/d参数允许你切换不同驱动器。执行生成JRE的命令 在JDK根目录下输入以下命令并回车bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre我来解释一下这条命令在干什么bin\jlink.exe调用JDK自带的一个名为jlink的工具它就是专门用来生成自定义运行时镜像的。--module-path jmods告诉工具Java的模块文件.jmod都在当前目录的jmods文件夹里。--add-modules java.desktop指定要包含的模块。java.desktop是包含AWT、Swing等图形界面组件的核心模块对于大多数需要JRE的桌面软件来说这个模块是必须的。如果你的软件还需要其他功能比如数据库连接可能需要添加更多模块例如java.sql。--output jre指定输出目录的名字。执行后它会在当前目录也就是你的JDK根目录下创建一个名为jre的新文件夹。等待完成 命令执行只需要几秒钟。完成后你再去JDK的安装目录看看是不是多了一个jre文件夹进去看看里面有bin、lib等子目录一个完整的JRE就诞生了。现在那些需要指定JRE路径的软件你就可以将这个新生成的jre文件夹的路径例如D:\Develop\Java\jdk-11\jre配置给它们了。这个方法比去单独下载一个旧的JRE要安全、匹配得多因为它完全是从你当前JDK版本中派生出来的保证了百分之百的兼容性。7. 进阶技巧与常见问题排坑指南环境配好了JRE也生成了基本工作就完成了。但根据我的经验还有一些细节和常见问题值得你了解这能让你以后少走弯路。关于CLASSPATH变量如果你搜索一些比较老的JDK安装教程特别是JDK 8及以前的它们一定会让你配置一个叫CLASSPATH的环境变量。但在JDK 11及以后的版本中你完全不需要手动配置CLASSPATH。现代Java的类加载机制已经足够智能能够自动找到JDK自带的类库rt.jar,tools.jar等。手动配置一个错误的CLASSPATH反而可能引起“类找不到”的错误。所以请忘记这一步。管理多个JDK版本随着学习深入你可能需要在同一台电脑上安装多个JDK版本比如同时有JDK 8和JDK 11用于测试不同项目。这时候JAVA_HOME的灵活性就体现出来了。你不需要反复修改Path变量只需要更改JAVA_HOME的值将其指向你当前想用的那个JDK版本的安装路径即可。有些高级用户会写一个简单的批处理脚本.bat来动态切换JAVA_HOME或者使用第三方版本管理工具但对于初学者手动改一下JAVA_HOME已经足够方便。安装路径的权限问题如果你把JDK安装在了C:\Program Files这类受系统保护的目录有时在命令行里执行某些Java命令尤其是需要生成文件的命令可能会因为权限不足而失败。如果遇到这种情况可以考虑以管理员身份运行命令行或者像我之前建议的将JDK安装到用户目录如D:\Develop下可以避免很多权限相关的麻烦。检查环境变量是否被覆盖有时候即使你正确配置了命令仍可能出错。一个隐藏的“坑”是某些软件特别是某些国产软件或游戏在安装时可能会在Path变量的最前面插入它们自己的Java路径通常是旧的JRE。你可以打开Path变量仔细从上到下检查确保没有其他路径比如包含javapath的路径指向一个旧的、不完整的Java环境。如果有可以将其删除或者确保我们添加的%JAVA_HOME%\bin位置在它之前。最后当你成功在命令行里看到java -version输出版本号时恭喜你你的Java开发环境已经正式搭建完毕。接下来你就可以打开任何一个文本编辑器比如Notepad、VS Code开始编写你的第一个HelloWorld.java程序然后用javac编译用java运行真正踏上Java开发之旅了。这个过程本身就是对你刚才所有配置工作的一次完美检验。如果在后续使用中遇到任何问题回头检查一下这几个关键点路径、环境变量、命令行重启问题大多都能迎刃而解。

相关新闻

从零搭建微信小程序:Taro + React 实战入门指南

从零搭建微信小程序:Taro + React 实战入门指南

1. 环境准备:从零开始的第一个脚印 想自己动手做一个微信小程序,但一上来就被各种概念和工具搞晕了?别担心,我刚开始的时候也一样。今天,我就带你用 Taro 和 React 这两个现在非常流行的技术栈,从零开始&am…

2026/7/6 0:38:41 阅读更多 →
【实战避坑】Xtuner+QLoRA微调中的版本冲突与解决方案

【实战避坑】Xtuner+QLoRA微调中的版本冲突与解决方案

1. 环境配置:版本冲突的“万恶之源” 最近在帮几个朋友用Xtuner做QLoRA微调,发现大家踩的第一个坑,几乎都是环境配置。我自己刚开始玩的时候,也在这个问题上折腾了好几天。环境配置听起来简单,不就是装几个包吗&#x…

2026/5/17 12:15:33 阅读更多 →
StructBERT创新应用:结合智能体的自动化评论审核系统

StructBERT创新应用:结合智能体的自动化评论审核系统

StructBERT创新应用:结合智能体的自动化评论审核系统 1. 引言 你有没有遇到过这样的情况:打开电商平台或社交媒体,看到评论区充斥着各种负面情绪、不当言论甚至恶意攻击?传统的评论审核往往依赖人工,效率低下且容易漏…

2026/7/6 0:39:00 阅读更多 →

最新新闻

如何通过MAVProxy实现无人机全栈控制:5个实战技巧全解析

如何通过MAVProxy实现无人机全栈控制:5个实战技巧全解析

如何通过MAVProxy实现无人机全栈控制:5个实战技巧全解析 【免费下载链接】MAVProxy MAVLink proxy and command line ground station 项目地址: https://gitcode.com/gh_mirrors/ma/MAVProxy MAVProxy作为一款基于Python开发的MAVLink代理和命令行地面站软件…

2026/7/6 1:11:33 阅读更多 →
我用开源栈复刻了一个“科研 Agent“:29 个技能、24 个 MCP 服务、一个有状态的内核——全都可复用

我用开源栈复刻了一个“科研 Agent“:29 个技能、24 个 MCP 服务、一个有状态的内核——全都可复用

我用开源栈复刻了一个"科研 Agent":29 个技能、24 个 MCP 服务、一个有状态的内核——全都可复用 给大模型配一张真正的实验台,难的从来不是模型,而是脚手架。 一句话概括 Open Science Toolkit 是一套在全开源栈上搭建 Claude-Science 风格科研 Agent 的可复用组件…

2026/7/6 1:11:33 阅读更多 →
ComfyUI API自动化测试:Postman集成与异步接口验证实战

ComfyUI API自动化测试:Postman集成与异步接口验证实战

1. 项目概述:为什么需要自动化接口验证?如果你正在使用 ComfyUI 的托管 API 服务(比如 ComfyStack、RunDiffusion 或其他云服务)来部署你的 AI 生图工作流,那么你很可能已经体验过手动测试接口的繁琐。每次修改工作流中…

2026/7/6 1:09:32 阅读更多 →
创业资源丰富的国内EMBA权威综合实力TOP5榜单

创业资源丰富的国内EMBA权威综合实力TOP5榜单

在国内企业全球化布局、科创产业高速迭代的当下,企业创始人、核心高管对兼具优质创业资源、国际化视野与合规学历认可度的EMBA项目需求持续攀升。相较于传统商科课程,优质EMBA不仅能补齐管理者系统化商业思维,更能提供产学研孵化、高端圈层、…

2026/7/6 1:09:32 阅读更多 →
大型系统的依赖管理与解耦

大型系统的依赖管理与解耦

大型系统的依赖管理与解耦在软件工程领域,构建和维护大型系统是一项复杂且持续的挑战。随着业务需求的膨胀和技术的迭代,系统规模如同滚雪球般增长,模块间的耦合度往往也随之悄然攀升。最终,系统可能变得僵化、脆弱且难以演进&…

2026/7/6 1:07:31 阅读更多 →
深入理解Go语言内存模型与优化

深入理解Go语言内存模型与优化

深入理解Go语言内存模型与优化Go语言以其简洁的语法、强大的并发模型和出色的性能,在现代软件开发中占据了重要地位。然而,要真正释放Go程序的潜力,开发者必须深入理解其内存模型,并掌握相关的优化技巧。Go的内存管理虽然由垃圾回…

2026/7/6 1:05:31 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻