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

Linux 系统中定位与设置 JAVA_HOME 目录

🔍 定位 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):类似于快捷方式,指向另一个文件或目录的路径。
http://www.jsqmd.com/news/1132468/

相关文章:

  • MNIST 数据集 3 种主流框架加载对比:PyTorch vs TensorFlow vs Hugging Face Datasets
  • Educator头歌答案分享:数据预处理与特征工程在线实验闯关
  • Pot Desktop:5大核心功能解密,3分钟掌握跨平台翻译神器
  • Java面试突击指南!1个月拿下Java高级开发岗!AI大模型简历必备/面试必备!
  • Agentic RAG 方案深度解析:从概念到落地
  • 如何在Linux上流畅运行Windows游戏:DXVK终极配置指南
  • Fastboot Enhance:Windows平台一站式Android刷机工具箱,告别命令行复杂操作
  • Markdown锚点跳转失败的解决办法
  • Jetson Nano Super + Ubuntu 22.04 + ROS2 Humble:MID-360、FAST-LIO 与 EGO-Planner 实时建图部署记录
  • pytest-xdist分布式测试:加速APP自动化测试的架构与实战
  • 互联网大厂 Java 面试实录:谢飞机的三轮攻防战
  • 前后端分离爱心商城系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 从零搭建一个单节点 K8S 可观测实验室(一):从 Ubuntu 24.04 开始
  • HarmonyOS 小游戏《对战五子棋》开发第3篇-项目配置文件全解析
  • AI 已经改变工作方式,我们该怎么适应这场变化?
  • Codex 使用 Playwright Test Agents
  • 换种不同的方式调用WCF服务[提供源代码下载]
  • 3步解锁中医AI:如何让“仲景“大语言模型成为你的智能中医助手
  • 程序员的语言“艳遇史”(四) ——数学系师姐forth
  • 尽量减少对DOM的操作
  • mnist-数据集的学习-3.6手写数字识别
  • Tableau新手实战指南:3天做出可交付业务看板
  • 【学习记录】Week14(一):信息泄露系统化方法论与 ORW 基础体系构建
  • 用虚拟机实际体验Google Chromium OS (Chrome OS) Pre-Built
  • FastAPI 新手入门第 8 篇:让 /docs 更像一份 API 文档
  • 【 CLI与GUI两种AI编程范式技术解析】终端Agent与可视化IDE架构对比
  • ClaudeCode Skills:IDE内可工程化的AI编程技能体系
  • 从 Agent Memory 到 Object-Scoped Context 的思考
  • !ccstatusline:让你的 Claude Code 状态栏直接封神!
  • 华为防火墙Web登录配置:eNSP环境搭建与安全策略详解