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

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
H
Help Net Security
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12)
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 验证安装状态。