当前位置: 首页 > news >正文

从零搭建 Java 开发环境:JDK 26 安装与环境变量配置(附深度解析与排坑指南)

目录


引言:为什么 JDK 环境配置是第一道坎?

对于 Java 初学者,配置 JDK 环境看似简单,却往往因为概念混淆、路径错误、多版本冲突而卡住。本文不仅会带您完成 JDK 26 的安装与环境配置,还会深入讲解JDK/JRE/JVM 的关系环境变量工作原理多版本共存时的优先级机制,以及如何正确编写并运行第一个 Java 程序。每一步都配有高清截图,并参考了经典教材《Java面向对象程序设计》的安装流程。希望这篇带原理分析的文章能让您不仅会做,更懂为什么。让我们开始吧~😘


一、JDK 核心概念:从源码到运行的完整链路

在动手安装之前,我们先搞清楚三个核心概念:JDK、JRE、JVM

名称全称作用包含关系关键文件
JDKJava Development Kit开发 Java 程序所需工具包(编译器、调试工具、类库等)包含 JREjavac.exe,java.exe,jar.exe
JREJava Runtime Environment运行 Java 程序所需环境(JVM + 核心类库)包含 JVMjava.exe(仅运行)
JVMJava Virtual Machine执行 Java 字节码的虚拟机,实现跨平台核心组件jvm.dll(Windows)

JDK 目录结构

个人体悟:初学时我只知道“装 JDK 配环境”,直到后来遇到java命令能用但javac报错,才明白 PATH 里只加了 JRE 的路径。因此,理解这三个概念对排错至关重要。


二、安装前检查:你的电脑是否已有 JDK?

为了避免重复安装或版本冲突,首先检查系统是否已存在 JDK。

操作步骤:

  1. 按下Win + R,输入cmd并回车,打开命令提示符。

  2. 依次输入以下两条命令,每输完一条按回车:

java -version javac -version

预期结果分析:

  • 如果两条命令都正常显示版本号(例如openjdk version "26.0.1"java version "26.0.1"),说明你的电脑已经有 JDK 了。请直接跳到第四节“配置环境变量”,检查变量是否正确。

  • 如果提示“不是内部或外部命令”,说明系统未检测到 JDK,请继续阅读下一节进行安装。


三、下载 JDK 26

3.1 下载地址

Oracle 官方提供所有历史版本的 JDK 下载。推荐使用JDK 26(最新非 LTS 版,安装过程与 LTS 版完全一致),或者选择稳定的 LTS 版本如 JDK 17、21。

🔗官方下载链接:https://www.oracle.com/java/technologies/downloads/

选择指南:

  • 操作系统:Windows

  • 架构:x64(绝大多数 64 位 Windows)

  • 文件类型:Installer.exe安装包,约 160MB)—— 推荐新手使用,图形化向导更简单。

如果你希望免安装版,可以选择.zip压缩包,但需要手动解压并配置环境变量,步骤相同。

Oracle 官网 JDK 下载页面表格


四、安装 JDK 26(图文详解)

4.1 欢迎界面

双击下载的.exe安装包,出现安装向导。点击“下一步”

👉安装向导欢迎界面

4.2 选择安装路径

默认路径为C:\Program Files\Java\jdk-26.0.1\强烈建议保持默认,因为很多 Java 工具(如 Maven、Tomcat)会默认在此路径查找 JDK。如果确实需要修改,请选择纯英文路径,不要包含空格或中文字符。

👉目标文件夹选择界面

4.3 安装进度

点击“下一步”后,安装程序开始复制文件。等待进度条走完,通常只需 1-2 分钟。

👉安装进度条

4.4 安装完成

进度条完成后,点击“关闭”退出向导。

👉安装完成界面

补充说明:安装过程中可能会弹出“公共 JRE 安装”选项。因为 JDK 已经自带了 JRE,你可以取消勾选,但保留也不会影响。

安装完成后,JDK 的所有文件位于C:\Program Files\Java\jdk-26.0.1。你可以打开此目录查看binlibconf等子文件夹。


五、环境变量深度解析:为什么需要 JAVA_HOME 和 PATH?

很多同学配完环境变量后仍然报错,根本原因是不理解这两个变量的作用。😭

  • JAVA_HOME:一个自定义的系统变量,值为 JDK 的根目录(例如C:\Program Files\Java\jdk-26.0.1)。许多 Java 工具(如 Maven、Tomcat、Eclipse)默认读取此变量来定位 JDK。

  • PATH:系统查找可执行文件的路径列表。当你在命令行输入javajavac时,系统会按PATH中的顺序依次查找对应的.exe文件,找到第一个就停止。

最佳实践:将%JAVA_HOME%\bin添加到PATH中,而不是直接写死路径。这样以后升级 JDK 时,只需要修改JAVA_HOME一个地方,PATH会自动生效。

5.1 打开环境变量设置窗口

  • 右键点击桌面上的“此电脑”(或“我的电脑”),选择“属性”

  • 在左侧点击“高级系统设置”

  • 在弹出的“系统属性”窗口中,点击“环境变量”按钮。

👉系统属性窗口

5.2 新建JAVA_HOME系统变量

“系统变量”区域(下半部分)点击“新建”

  • 变量名JAVA_HOME

  • 变量值:粘贴 JDK 的根目录,例如C:\Program Files\Java\jdk-26.0.1注意:不要带\bin子目录

👉新建 JAVA_HOME 变量的对话框

教材参考图:
👉教材中设置JAVA_HOME的示例

5.3 修改PATH变量

“系统变量”列表中找到Path变量,双击(或选中后点击“编辑”)。

  • 点击右侧的“新建”按钮,输入:%JAVA_HOME%\bin

  • 重要:通过右侧的“上移”按钮将这一行移动到列表的最顶部。这样可以确保系统优先使用我们刚安装的 JDK,避免与其他版本冲突。

  • 如果有其他 JDK 相关的路径(如C:\Program Files\Java\jdk-25\binC:\Program Files\Common Files\Oracle\Java\javapath),建议选中后点击“删除”,或至少将它们移到下面。

👉Path 编辑界面,显示%JAVA_HOME%\bin条目

5.4 保存所有设置

点击所有窗口的“确定”按钮,配置才会生效。

注意:修改环境变量后,必须关闭所有已打开的命令提示符窗口,然后重新打开一个新的 cmd,新的变量值才会生效。


六、验证环境配置(多版本冲突排查)

重新打开一个新的命令提示符窗口(Win+Rcmd)。依次执行以下三条命令:

echo %JAVA_HOME% java -version javac -version

👉验证命令的输出结果

正常输出应该如下:

  • echo %JAVA_HOME%显示C:\Program Files\Java\jdk-26.0.1

  • java -version显示java version "26.0.1" ...

  • javac -version显示javac 26.0.1

如果出现版本不一致(例如java -version显示 25,而javac显示 26),说明你的PATH中还有其他 JDK 路径排在前头,请回到 5.3 步调整顺序。

如果echo %JAVA_HOME%显示%JAVA_HOME%(原样输出),说明变量名拼写错误或未重启 cmd,请检查系统变量名是否为JAVA_HOME(区分大小写不敏感,但建议大写),然后重启 cmd。


七、测试java命令(不加参数)

在 cmd 中直接输入java并回车,会显示 Java 命令的用法帮助(包括语法、选项说明)。这证明java.exe已经被系统正确找到,并且可以正常调用。

👉java命令的帮助信息

显示用法:java [java options...] <application> [application arguments...]等内容


八、编写并运行第一个 Java 程序(避开 .txt 陷阱)

现在,我们终于可以编写第一个 Java 程序了。但这里有一个新手最常见的坑:文件扩展名被隐藏,导致实际文件名是Hello.java.txt。以下是错误示例/(ㄒoㄒ)/~~

8.1 正确创建Hello.java文件

  1. 显示文件扩展名:打开任意文件夹,点击顶部菜单栏的“查看”,然后勾选“文件扩展名”。这一步至关重要!

  2. 在桌面新建一个文本文档(右键 → 新建 → 文本文档)。

  3. 将文件名重命名为Hello.java(注意删除原有的.txt后缀)。如果系统提示“改变扩展名可能导致文件不可用”,点击“是”

  4. 右键Hello.java打开方式→ 选择“记事本”

  5. 在记事本中输入以下代码:

public class Hello { public static void main(String[] args) { System.out.println("JDK 26 配置成功!"); } }
  1. 保存文件:点击“文件”“另存为”→ 在对话框底部:

    • 文件名Hello.java(确认没有.txt

    • 保存类型:选择“所有文件(.)”

    • 编码:选择“ANSI”(避免中文乱码)

    • 点击“保存”

👉桌面上Hello.java文件图标(应显示 Java 图标)

8.2 编译与运行

最稳妥的方式是在Hello.java所在目录直接打开命令行:

  • 在桌面上选中Hello.java文件,然后在文件资源管理器的地址栏(显示路径的地方)输入cmd并回车。这时弹出的命令行已经自动切换到了桌面目录。

依次执行以下命令:

javac Hello.java java Hello
  • javac Hello.java是编译命令,如果没有语法错误,会在同一目录下生成Hello.class文件(字节码)。

  • java Hello是运行命令,注意不要加.class后缀

👉编译运行成功的输出

如果遇到“找不到或无法加载主类”:请检查你是否运行了java Hello.class(错误)或者java Hello时当前目录不在Hello.class所在位置。使用dir命令确认Hello.class存在。


九、全流程 Mermaid 流程图(可视化总结)

为了让你对整个安装配置流程一目了然,下面使用 Mermaid 绘制流程图。请在编辑器中插入代码块,语言选择mermaid。


十、常见问题深度解答

问题现象原因分析解决方案扩展排查
javac不是内部或外部命令Path中缺少%JAVA_HOME%\bin检查系统变量Path,添加该条目,重启 cmdwhere javac查看系统找到的是哪个
echo %JAVA_HOME%显示%JAVA_HOME%变量名拼写错误(如多了空格)或未重启 cmd确认变量名为JAVA_HOME,去掉空格,重启 cmdset JAVA_HOME查看实际值
java -versionjavac -version版本不一致Path中存在多个 JDK 路径,旧版本排在前%JAVA_HOME%\bin上移到最顶部,删除多余路径临时测试:set PATH=C:\Program Files\Java\jdk-26.0.1\bin;%PATH%
编译时找不到Hello.java文件扩展名实际为.txt显示文件扩展名,重命名删除.txt在 cmd 中用dir查看真实文件名
运行时报“找不到或无法加载主类 Hello”运行命令写成了java Hello.class,或不在.class所在目录运行java Hello(不加扩展名),用cd切换到正确目录类名必须与 public 类名完全一致(区分大小写)
编译时中文乱码源文件编码不是系统默认编码(如 UTF-8)用记事本另存为 ANSI 编码或用javac -encoding UTF-8 Hello.java指定编码

十一、总结与心得体悟

通过本文,恭喜你你完成了:

  • ✅ JDK 26 的下载与安装

  • ✅ 环境变量JAVA_HOMEPath的配置与原理理解

  • ✅ 多版本 JDK 冲突的排查与解决

  • ✅ 第一个 Java 程序的编写、编译与运行

  • ✅ 避开.java文件扩展名陷阱

个人踩坑心得

  1. 环境变量名多一个空格:我初次配置时把JAVA_HOME写成了JAVA_HOME(后面带空格),导致echo %JAVA_HOME%始终显示原样,排查了两小时。

  2. 文件扩展名被隐藏:保存Hello.java时没有注意“所有文件”选项,实际保存为Hello.java.txt,编译时一直报“找不到文件”。

  3. 多版本冲突:电脑里原来有 JDK 25,Path中旧版本路径在前面,导致java -version显示 25 而javac显示 26。

希望这些真实经历能帮你避开同样的坑。配置完成后,建议运行where javawhere javac确认路径正确。😊


参考文献

  1. Oracle Corporation.Java SE Development Kit 26.0.1 Download[EB/OL]. https://www.oracle.com/java/technologies/downloads/

  2. 教材《Java面向对象程序设计》第1章:Java开发环境配置(图1-3, 图1-4, 图1-5)


如果本文对你有帮助,欢迎点赞 👍 + 收藏 ⭐,你的支持是我持续分享的动力。一起慢慢成长吧✌

http://www.zskr.cn/news/1424689.html

相关文章:

  • 【算法】LCA的三种算法
  • 可靠是一切的前提!ROBOMIND的产品哲学
  • 智慧政务大数据整体解决方案全解析|架构设计、建设内容、落地实践与价值复盘
  • 合规办学打底,构建闭环错题清零教学体系
  • 避坑指南:GSVA分析中你可能忽略的3个关键参数与数据预处理细节
  • 跨越操作系统壁垒:Linux下的BitLocker实时解密引擎
  • HarmonyOS 6.1 开发实战(一):如何做出高端精致的界面与交互
  • Lindy权限配置灾难频发?资深架构师紧急披露4类高危场景及实时熔断方案
  • 打造一款离线可用的桌面 OCR 工具:微信 OCR 引擎复用实践
  • 终末期心衰并非终局!合肥高心成功破局112kg超高危多病灶心衰患者
  • 宇视VMS-U停车场添加出入口相机配置指导
  • 想用ABIDE数据集做自闭症研究?这份保姆级数据获取与预处理指南请收好
  • 农业机器人多模态SLAM数据集Rosario v2技术解析
  • MySQL之表的内连接和外连接
  • 第17篇 Docker Compose 进阶实战:多 Compose 文件与环境覆盖
  • 别再重启电脑了!Windows 11下dwm.exe内存飙升,试试更新Intel核显驱动(附详细步骤)
  • 近数据处理架构的内存瓶颈与优化实践
  • 别再只盯着困惑度了!用Python实战LDA主题模型,手把手教你用主题一致性找到最佳主题数
  • 深圳正规移民公司有哪些?实力强资质齐全机构推荐清单
  • 【限时解密】Lindy 23.2+版本隐藏功能:动态租期重算引擎与IFRS 16/ASC 842双准则自动适配器(仅开放至Q3末)
  • 阿里巴巴与南京大学联手:给AI图像生成模型换上“智能神经网络“
  • Keil µVision中配置GNU GCC工具链的完整指南
  • 手把手教你“拆解”一个Linux驱动模块(.ko文件):从符号表、编译参数到依赖关系全解析
  • 新手避坑指南:Ubuntu换源后 apt update 还是慢?可能是这5个原因(附排查命令)
  • python学习——核心语法四
  • 零基础吃透「护网行动」!小白也能看懂的全网最细入门教程
  • 深入Linux内核:拆解ARM64架构下spinlock.h中WFE()与dsb_sev()的默契配合
  • 错误处理设计:Agent 调用工具失败怎么办
  • 用statsmodels做时间序列分解踩过的坑:period设错、趋势外推,我都帮你试过了
  • 抖音批量下载神器:告别手动保存,高效管理你的数字内容库