理解环境变量(以Windows操作系统给为例)

本文深入解析环境变量、用户变量和系统变量的区别与联系,阐述环境变量在操作系统中的作用,特别是Java环境变量的配置方法和意义,包括JAVA_HOME, JRE_HOME, Path, CLASSPATH等关键变量的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


The interest of Computer Science partly lies in the stability of every command.

环境变量、用户变量和系统变量的关系

  • 环境变量只是一个总称,代表了系统变量和用户变量。
  • 系统变量就是系统级别的变量,用户需要使用系统变量。如果系统变量被修改了,而任何系统用户都在用系统变量,因此每个系统用户都将受到影响。
  • 用户变量运行在系统变量之上的,每个用户拥有不同的用户变量,不同用户的用户变量之间是并列的,也是互不干扰的。
    在这里插入图片描述

环境变量的理解

  • 我们电脑运行的操作系统(是一个软件)是一个大的环境,其上运行着各种各样的小软件,各种applications,环境变量通常为这些小软件的路径,或包含这些小软件的路径。
  • 环境变量的意义是为了给操作系统(环境)来对各种小软件进行操作,类比程序中对各个变量进行操作。例如,对win10系统来说,在cmd中输入notepad,操作系统就会打开记事本,这是因为notepad这个工具是在Windows记事本的应用名字,是一个可执行程序文件,当我们输入notepad这一命令时,系统就会去系统的Path环境变量中的路径中一个个去找,notepad这一应用在Path中的C:\Windows\system32这一路径中。
  • 环境变量相当于操作系统这个环境中的全局变量

Java中的环境变量

为什么需要配置Java中的环境变量

执行Java程序时,我们需要先将Java源文件(.java文件)用javac工具编译成字节码(.class文件),再执行java命令由JVM加载执行。这两个工具在安装JDK时都放在了JDK目录下的bin目录下。而在没有配置环境变量的电脑上在DOS窗口下输入这两个命令对Java源文件进行编译则会提示您“'xxx’不是内部或外部命令,也不是可运行的程序或批处理文件”的提示。

这是因为Windows操作系统在运行任何命令的时候会根据系统的Path环境变量来查找命令。Path环境变量的值是一系列路径,Windows操作系统将在这一系列的路径中依次查找命令,如果能找到这个命令,则该命令是可执行的;找不到则会出现上面的提示。

为了能操作系统能够找到Java工具的所在路径,从而使用Java工具。
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

总结

  • 当运行程序时,如果在程序的完整路径下运行,则运行成功
  • 若在其他路径下运行,若配置了包含该程序完整路径的环境变量,则运行成功
  • 若以上两个条件都不满足,则运行失败
    ps: 我们通常双击的方式打开程序,相当于在已知完整绝对路径的条件下实现了程序的打开。

Java中需要配置的环境变量

  1. 对于我们所使用的Java而言,配置系统变量和用户变量效果相同(除非切换用户),所以只配置一个即可,也可以两个都配置。
  2. Java中需要配置的环境变量有:JAVA_HOME, JRE_HOME, Path, CLASSPATH和。下面分别对这几个环境变量的配置进行解释。
JAVA_HOME
  1. JAVA_HOME是一个约定(当然,这只是一个变量名,如果改成别的也不影响,但变量名最好起得见名知意,若有约定的,则使用约定的变量名),通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。
  2. JAVA_HOME不是必须配置的,使用JAVA_HOME仍需要配置path,但配置JAVA_HOME主要有以下两个好处,所以很多人选择配置JAVA_HOME:
  • 不用改变Path的值,只需要改变JAVA_HOME的值,就可改变要用的java.exe,javac.exe的命令位置
  • 统一所有使用Java程序的路径
JRE_HOME

这也是一个约定的变量,通常指JRE目录。其实大部分Java程序不需要JDK,而是只需要其子集JRE,所以很多程序也会去取这个变量来用。

Path

和所有应用程序一样,java也需要配置Path变量,这是操作系统用的,用来指定操作系统需要使用到的程序的位置。对于Java来说,通常需要把JDK的bin目录添加进入PATH中,这样你就可以在任意目录下使用bin下面的javac.exe、java.exe等。
这个变量一定要保证将JRE/JDK的bin纳入其中(至少要包含bin中的所有可执行文件),这样很多Java程序才能启动,比如Eclipse。

CLASSPATH

这个变量指的是:由AppClassLoader加载的class路径。
在使用IDE进行开发的情况下,这个变量通常不需要手动设置,只需要按常规IDE使用步骤(比如Build Path)IDE会帮你做。

Java的IDE

  1. IDE上面本身即有编译工具,不配置环境变量也可运行Java程序。
  2. 对于eclipse,因为eclipse是用java开发的,所有要有jre才能运行,可将jre装在eclipse下方便其运行。或在JAVA_HOME中配置好路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值