惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
L
LangChain Blog
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
博客园_首页
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
美团技术团队
V
V2EX

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
Linux 系统中定位与设置 JAVA_HOME 目录
游学者 · 2026-05-18 · via 博客园_首页

JAVA_HOME Java 开发工具包(JDK)的安装目录。它包含了运行和编译 Java 程序所需的所有文件。此目录的位置会因系统(Linux、MacOS、Windows 等)和已安装目录是 Java 运行时环境(JRE)和的 Java 版本而异。

🔍 定位 JAVA环境变量

通过打印环境变量来查看是否已设置 JAVA_HOME

_HOME 目录的方法

### 1. 检查$ printenv JAVA_HOME
# 或
$ echo $JAVA_HOME

如果无输出,则表示该环境变量尚未设置。

2. 使用 Java 命令查询

通过 Java,并使用 grep 筛选出 java.home 自身的命令来显示其属性设置 信息:

$ java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'

输出示例:

-openjdk-amd64

注意:若此命令报错,可能是未安装 Java 或配置有误,建议使用 find 命令手动查找或重新安装 Java。

3.java.home = /usr/lib/jvm/java-19 通过 javac 命令定位

结合 dirnamereadlinkwhich 命令来追溯 javac 可执行文件的根目录:

$ dirname $(dirname $(readlink -f $(which javac)))

输出示例:

/usr/lib/jvm/java-19-openj `java` 命令的符号链接
使用 `which` 和 `ls -l` 命令逐步dk-amd64

4. 追踪追踪 java 命令的符号链接,最终定位到 Java 安装目录:

$ which java
/usr/bin/java

$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 May 22 23:43 /usr/bin/java -> /etc/alternatives/java

$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Jun  6 01:50 /etc/alternatives/java -> /usr/lib/jvm/java-19-openjdk-amd64/bin/java

最终确定 Java 主目录为 /usr/lib/jvm/java-19-openjdk-amd64(注意:bin/java 是可执行文件路径,不是主目录)。

⚙️ 设置 JAVA_HOME 环境变量

步骤详解:

  1. 编辑用户配置文件
    使用文本编辑器(如 nano)打开 ~/.bashrc 文件:2. 添加环境变量
    在文件末尾添加以下行(请将路径替换为你的实际 Java 主目录):3. 使配置生效
    保存并退出文件后,运行以下命令使更改立即生效:

📊 方法对比与适用场景

方法 命令示例 优点 缺点
检查环境变量 echo $JAVA_HOME 简单直接 可能未设置
Java 命令查询 java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' 准确可靠 需要 Java 正确安装
追溯 javac 路径 dirname $(dirname $(readlink -f $(which javac))) 不依赖环境变量 需要已安装 JDK
追踪 java 符号链接 which java + ls -l 多次追踪 适用于任何 Java 安装 过程繁琐

💡 关键概念说明

  • 环境变量(Environment Variable):操作系统中用于存储配置信息的动态值,可供应用程序读取和使用。
  • 符号链接(Symbolic Link):类似于快捷方式,指向另一个文件或目录的路径。
  • Java JDK vs JRE:JDK(Java Development Kit)包含开发工具,JRE(Java Runtime Environment)仅用于运行 Java 程序。

🛠️ 故障排除提示

  • 如果上述方法均无效,建议使用 find 命令全局搜索 Java 安装目录:
  • 确保已正确安装 Java,可通过 java -version 验证安装状态。