Java 环境变量的设置及其目的

news2024/9/27 11:05:29

文章目录

  • 1. **为什么要设置Java环境变量?**
  • 2. **设置Java环境变量的步骤(Windows举例)**
  • 3. **设置环境变量的目的**
    • 3.1 原理
      • 1. **PATH 环境变量的作用**
      • 2. **JDK 的 bin 目录**
      • 3. **执行流程**
      • 4. **示例(Linux)**
  • 总结


1. 为什么要设置Java环境变量?

Java开发环境需要通过环境变量来指定JDK(Java Development Kit)的位置和工具。这使得操作系统能够找到编译和运行Java程序所需的文件和工具。主要有两个重要的环境变量:

  • JAVA_HOME:指向JDK的安装目录,用于Java开发相关的工具(如编译器 javac)的路径。
  • PATH:确保系统可以在任意路径下调用Java的命令(如 java, javac 等)而无需每次手动提供完整路径。

2. 设置Java环境变量的步骤(Windows举例)

  • 步骤 1:下载并安装JDK
    先从Oracle官网下载安装最新的JDK。

  • 步骤 2:找到JDK的安装路径
    通常,安装在 C:\Program Files\Java\jdk<version> 路径下。

  • 步骤 3:设置 JAVA_HOME

    • 打开 “系统属性” > “高级系统设置” > “环境变量”。
    • 在系统变量区域,点击 “新建”。
    • 在变量名输入框中填入 JAVA_HOME,在变量值中填入JDK的安装路径。
  • 步骤 4:更新 PATH

    • 同样在系统变量区域,找到 Path 变量,点击 “编辑”。
    • 添加新条目,输入 %JAVA_HOME%\bin,这样系统就知道在哪里查找Java工具。
  • 效果如图
    在这里插入图片描述

在这里插入图片描述

3. 设置环境变量的目的

  • 方便开发和执行Java程序:通过在 PATH 中设置 JDK 的 bin 目录,操作系统可以在任何地方识别 javajavac 等命令,而不需要每次输入完整的路径。
  • 支持Java相关的工具和框架:许多构建工具(如 Maven、Gradle)和IDE(如 Eclipse、IntelliJ IDEA)都会依赖 JAVA_HOME 来查找Java开发工具。

3.1 原理

当我们将 JDK 的 bin 目录添加到系统的 PATH 环境变量中后,操作系统能够识别并执行 javajavac 等命令的原因主要如下:

1. PATH 环境变量的作用

PATH 是操作系统中一个非常重要的环境变量,作用是告诉系统去哪里寻找可执行文件。当我们在命令行输入一个命令时,操作系统会按照 PATH 中指定的路径逐一查找,看是否能找到该命令对应的可执行文件。如果找到,就会执行这个命令。如果找不到,系统会返回 “未找到命令” 的错误。

2. JDK 的 bin 目录

JDK 的 bin 目录包含了所有与 Java 开发相关的工具和命令的可执行文件,比如:

  • java:用于运行 Java 应用程序的命令。
  • javac:Java 编译器,用于编译 .java 文件成字节码文件 .class
  • javadoc:生成 Java 文档的工具。

这些可执行文件都位于 JDK 安装目录下的 bin 文件夹中。当我们把这个 bin 路径添加到 PATH 中后,操作系统会在每次执行命令时,在 PATH 列出的所有目录中查找对应的可执行文件。

3. 执行流程

  • 添加 bin 目录前:如果我们尝试在命令行输入 javajavac,系统不知道该去哪里寻找这些命令的可执行文件,因此会提示 “command not found”。
  • 添加 bin 目录后:当我们在命令行输入 javajavac,操作系统会从 PATH 中的各个目录逐一查找这些可执行文件。如果找到了,就会执行该命令。

4. 示例(Linux)

在 Linux 或 macOS 中,通常通过编辑 .bashrc.zshrc 文件来设置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

然后执行 source ~/.bashrcsource ~/.zshrc 以使更改生效。

总结

通过设置 JAVA_HOMEPATH,你可以使系统和工具方便地找到JDK,确保在开发和运行Java程序时不需要手动指定路径,从而提高开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2169786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【React】react hooks的使用规则

1. 使用规则 1.1 反例 import { useState } from react// 错误1 // useToggle()function Son() {return <div>子组件</div> }function useToggle() {const [isShow, setIsShow] useState(true)function toggle() {setIsShow(!isShow)}return {isShow,toggle} }fu…

传输大咖49 | 镭速助力影视传媒行业跨国文件传输更加安全、高效

在影视传媒领域&#xff0c;跨国合作已成为常态&#xff0c;伴随而来的是跨国文件交换的日益频繁。这无疑对文件的跨国传输效率、安全性和稳定性提出了更为严格的标准。接下来&#xff0c;我将为您分析影视传媒业在进行跨国文件传输时所面临的挑战&#xff0c;并提供一些有效的…

【软设】计算机网络

【软设】计算机网络 一.OSI/RM七层模型 (七层模型还是要知道的&#xff0c;后面再去记一些协议&#xff0c;知道每一层应用在哪些方面&#xff0c;给你个东西或者协议你要能看得出来) OSI/RM&#xff08;Open Systems Interconnection Reference Model&#xff09;是国际标准…

书生大模型实战营学习[7] InternLM + LlamaIndex RAG 实践

环境配置 选择30%A100做本次任务 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install protobuf安装Llamaindex cond…

【UI】Vue3 + Naive-ui 使用表格Data Table 以及分页页码显示不全问题解决

参考文章&#xff1a; Vue3 Naive-ui Data Table 分页页码显示不全 Naive UI之数据表格分页pagination 数据列表分页全部代码: <n-data-tableref"tableRef"striped:columns"columns":pagination"pagination":bordered"false":d…

CSS 中的文本相关属性(line - height、font、letter - 属性、text - 属性)

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与行高的取值约定 行高与盒子高度的关系 font、letter -属性 、text -属性 font属性 letter -属性 text - 属性 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与…

模形式与态、势、感、知

模形式是数学中一个重要的研究领域&#xff0c;主要出现在数论、代数几何和表示论等多个学科中。模形式可以视为在某种意义上具有“对称性”的函数&#xff0c;这些函数在特定的条件下满足一定的变换性质。具体来说&#xff0c;模形式是定义在上半平面上的复值函数&#xff0c;…

基于Linux环境安装 jdk 1.8 保姆级教程

1. 下载 jdk 1.8 首先需要下载 linux 版本的 jdk 1.8. 需要在 Oracle 官网的 JDK 1.8 下载页面 进行下载&#xff0c;找到 Linux x64 Compressed Archive 对应的链接。或者直接下载我准备好的压缩包&#xff0c;点击链接即可下载。 2. FTP压缩包文件传输 下载完成之后&…

2024南京软博会同期会议“中国信息技术应用创新大会”

软件产业作为新一代信息技术的核心驱动力&#xff0c;正以前所未有的速度推动着全球经济的转型升级。在此背景下&#xff0c;2024中国&#xff08;南京&#xff09;软件产业博览会&#xff08;以下简称“南京软博会”&#xff09;将于12月份在南京国际博览中心盛大召开&#xf…

下载配置Android Studio(2024年9月)

安装JAVA JDK 下载安装包 Java网站官网 Java Downloads | Oracle 我下载的是JDK Development Kit 17.0.12 downloads Windows x64 MSI Installer。 下载后打开文件&#xff0c;一路NEXT闭眼安装。 配置环境变量 设置-系统-系统高级设置-环境变量 1.新建一个系统环境变量&…

Java爬虫抓取数据的艺术

在信息时代&#xff0c;数据的重要性不言而喻。对于Java开发者来说&#xff0c;掌握如何使用Java进行数据抓取是一项宝贵的技能。通过编写爬虫程序&#xff0c;我们可以从互联网的海量信息中提取有价值的数据&#xff0c;用于市场分析、客户洞察、内容监控等多种场景。本文将介…

基于SSM的中小企业人力资源管理系统【附源码】

基于SSM的中小企业人力资源管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 学生…

Linux之实战命令14:watch应用实例(四十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

9.27今日错题解析(软考)

目录 前言信息安全——网络攻击算法基础——二分查找数据库系统——数据库设计过程 前言 这是用来记录我每天备考软考设计师的错题的&#xff0c;今天知识点为网络攻击、二分查找和数据库设计过程&#xff0c;大部分错题摘自希赛中的题目&#xff0c;但相关解析是原创&#xf…

PHM技术 : 特征缩放

特征缩放 监督/无监督机器学习算法已广泛用于开发数据驱动的异常检测、诊断和预测方法。此外,对于复杂电子设备的 PHM 来说,使用高维数据是不可或缺的。然而,如果各维度没有被标准化到相似水平,机器学习算法的输出可能会偏向于某些大尺度数据。例如,大多数分类器通过欧氏距离计…

统信UOS率先适配龙芯3A6000

UOS统信率先适配龙芯3A6000的相关介绍。 文章目录 统信软件第一时间完成龙芯3A6000处理器与统信UOS的适配工作&#xff0c;功能完整&#xff0c;性能优异。 综合相关测试结果&#xff0c;龙芯3A6000处理器总体性能与Intel第10代酷睿四核处理器相当。 多年来&#xff0c;龙芯中…

【Qt】前后端交互---DataCenter类

设计目的 前后端交互系统中&#xff0c;创建并使用数据核心类的目的就是让该类作为客户端的数据中心&#xff0c;也就是说其负责管理客户端的所有数据与服务器的网络通信。 数据持久化 初始化数据文件 该函数设计的目的就是用于检查所需要的文件和目录是否存在&#xff0c;如…

【C/C++】【基础数论】33、算数基本定理

算术基本定理&#xff0c;又称正整数的唯一分解定理。 说起来比较复杂&#xff0c;但是看一下案例就非常清楚了 任何一个大于 1 的正整数都可以唯一地分解成有限个质数的乘积形式&#xff0c;且这些质数按照从小到大的顺序排列&#xff0c;其指数也是唯一确定的。 例如&#…

mvnd 初体验

https://github.com/apache/maven-mvnd/releases?page2 mvnd内嵌了Maven&#xff08;因此不需要单独安装Maven&#xff09;。mvnd客户端是通过GraalVM构建的可执行文件&#xff0c;与启动传统JVM相比&#xff0c;它的启动速度更快&#xff0c;占用的内存更少。实际构建发生在一…

【Python报错已解决】TypeError: list indices must be integers or slices, not str

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…