最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)

【2026最新版】Java JDK 安装与环境配置教程(Windows + macOS 超详细图文)

截至2026年1月,最新长期支持版(LTS)JDK 25(2025年9月发布),推荐大多数开发者使用。它提供长期安全更新和稳定性。下一个非LTS版本JDK 26预计2026年3月发布,目前处于早期访问阶段。

推荐下载来源:Eclipse Adoptium Temurin(免费、开源、TCK认证、高性能,支持多平台)。避免旧版Oracle商业许可限制。

下载地址:https://adoptium.net/temurin/releases/
选择 JDK 25(最新LTS),根据系统选包类型(Windows用MSI,macOS用PKG)。

1. Windows 系统安装与配置

步骤1:下载安装包
访问Adoptium网站,选择 Temurin 25 LTS → Windows x64 → .MSI 安装包,下载完成。

步骤2:运行安装
双击 .MSI 文件 → “Next” → 接受许可 → 选择安装路径(默认 C:\Program Files\Eclipse Adoptium\jdk-25.x.x) → 安装。

步骤3:配置环境变量

  1. 右键“此电脑” → 属性 → 高级系统设置 → 环境变量。
  2. 系统变量中新建 JAVA_HOME:值填JDK安装路径(如 C:\Program Files\Eclipse Adoptium\jdk-25.0.1+8)。
  3. 编辑 Path 变量,新建条目:%JAVA_HOME%\bin。

步骤4:验证安装
打开命令提示符(Win + R → cmd),输入:

java -version javac -version 

显示类似 jdk 25.0.1 信息即成功!

2. macOS 系统安装与配置(支持Intel & Apple Silicon M系列)

步骤1:下载安装包
Adoptium网站 → Temurin 25 LTS → macOS → 根据芯片选 aarch64(M系列)或 x64(Intel) → .PKG 包。

步骤2:运行安装
双击 .PKG 文件 → 继续 → 安装(可能需输入密码)。

步骤3:配置环境变量(推荐用zsh/bash)

  1. 打开终端(Terminal)。
  2. 编辑配置文件:
    • Intel/Mac默认zsh:nano ~/.zshrc
    • 老版bash:nano ~/.bash_profile
  3. 保存(Ctrl+O → Enter → Ctrl+X),然后运行 source ~/.zshrc 生效。

添加以下内容(路径根据实际调整,通常 /Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home):

export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 

步骤4:验证安装
终端输入:

java -version javac -version 

显示版本信息即成功!

常见问题排查
  • java命令无效检查Path是否包含bin目录,重启终端/电脑。
  • 多个JDK冲突:用 /usr/libexec/java_home -V(macOS)查看,用JAVA_HOME指定默认。
  • 权限问题(macOS):安装时允许系统扩展。
  • 想用Oracle版:去 https://www.oracle.com/java/technologies/downloads/ 下载,但需接受许可。

安装完成!你现在可以愉快地写Java代码了~推荐用IntelliJ IDEA或VS Code作为IDE。如果遇到问题或想配置IDE,随时问我!🚀

Read more

C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现

C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现

🔥@雾忱星: 个人主页 👀专栏:《数据结构与算法入门指南》、《C++学习之旅》 💪学习阶段:C/C++、数据结构与算法 ⏳“人理解迭代,神理解递归。” 文章目录 * 引言 * 一、拷贝构造函数 * 1.1 解析:拷贝构造特点 * 1.2 关键:拷贝构造的调用 * 二、赋值运算符重载 * 2.1 铺垫:运算符重载特点 * 2.1.1 核心:理解运算符重载 * 2.2 进阶:赋值运算符重载特点 * 2.2 核心:理解赋值运算符重载 * 总结 引言 在C++面向对象编程中,对象的复制操作无处不在。无论是函数传参、返回值传递,

By Ne0inhk
《MySQL 权限与访问进阶:普通用户搭建、跨端登录及 C/C++ 开发对接教程》

《MySQL 权限与访问进阶:普通用户搭建、跨端登录及 C/C++ 开发对接教程》

前引:在 MySQL 开发与运维中,普通用户的创建与权限管控是保障数据库安全的基础,而本地连接、远程访问的配置,以及 C/C++ 程序的对接调用,则是打通 “数据库 - 应用” 链路的核心环节。很多开发者在实际操作中会遇到 “用户创建后登录失败”“远程连接被拒绝”“C/C++ 接口调用报错” 等问题,本文将从实战出发,一步步拆解 MySQL 普通用户的创建配置、本地 / 远程登录的关键步骤,以及 C/C++ 访问 MySQL 的完整流程(含环境搭建、代码实现、常见问题排查),帮助开发者快速搞定多场景下的 MySQL 访问需求! 目录 【一】普通用户的创建 (1)查看user表 (2)创建普通用户 (3)删除普通用户

By Ne0inhk
容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

容器适配器深度解析:从STL的stack、queue到优先队列的底层实现

文章目录 * 容器适配器深度解析:从STL的stack、queue到优先队列的底层实现 * 1. 栈的介绍和使用 * 1.1 栈的介绍 * 1.2 栈的使用 * 最小栈实现 * 栈的弹出压入序列 * 逆波兰表达式求值 * 1.3 stack的模拟实现 * 2. 队列的介绍和使用 * 2.1 队列的介绍 * 2.2 queue的使用 * 2.3 queue的模拟实现 * 3. 优先队列的介绍和使用 * 3.1 priority_queue的介绍 * 3.2 priority_queue的使用 * 3.3 priority_queue的模拟实现 * 4. 容器适配器 * 4.1 什么是适配器 * 4.2

By Ne0inhk
【问题反馈】JNI 开发:为什么 C++ 在 Debug 正常,Release 却返回 NaN?

【问题反馈】JNI 开发:为什么 C++ 在 Debug 正常,Release 却返回 NaN?

摘要: 在 Android NDK / JNI 开发中,经常会遇到这样一种“诡异”问题:Debug 模式下运行完全正常,而 Release 模式却出现 NaN、Infinity 甚至随机结果。 本文通过一次真实的 JNI 坐标转换案例,深入分析了该问题的根本原因——C++ 返回局部栈内存指针所导致的未定义行为(Undefined Behavior)。 【问题反馈】JNI 开发:为什么 C++ 在 Debug 正常,Release 却返回 NaN? 本文为以下问题的解决记录。由于问题较为典型,故梳理备忘。 https://github.com/eqgis/Sceneform-EQR/discussions/16 一、问题现象描述 1. 现象

By Ne0inhk