什么是环境变量?为什么java要配置环境变量?

本文深入解析环境变量的概念,区分用户变量与系统变量,并详细阐述Path路径的作用及为何Java需配置环境变量。同时,指导如何配置JAVA_HOME与CLASSPATH,确保Java程序跨目录运行。

本文是将https://blog.csdn.net/qq_37872792/article/details/80642985 与 https://blog.csdn.net/Pre_waist_L/article/details/79696507两篇文章总结而成,此外,大家还可以参考这篇博文https://blog.csdn.net/mylittleone/article/details/79651536特此申明!

 

一 . 什么是环境变量?

 

1.1  用户变量与系统变量

我们首先先找到修改系统变量的地方:

右键我的电脑,单击“属性”;在出现的系统框中点击“高级系统设置”,你会进入一个系统属性框,选择里面的环境变量,你就会看到下面的框:

从上图我们可以看到环境变量包括用户变量和系统变量:

  • 用户变量是指我们当前登入这台电脑的用户,比如管理员用户,普通用户。在里面配置的环境变量,只对这个用户有效,一旦用户进行了更换,这环境变量将改为新登录用户的环境变量。
  • 系统变量是指这这台电脑的配置的环境变量,对所有用户都生效,不管你换哪个用户,都是生效的

​    

1.2  Path路径

我们先明确两个概念:

  1. path路径:用来指定可执行文件的搜索路径,也就是后缀名为.exe文件
  2. .exe文件:你桌面上快捷方式的根本,点开快捷方式相当于点开改文件;

通过一个QQ例子来讲解:

首先安装好QQ,我们不用快捷方式打开它,而是通过cmd进入dos界面,直接输入QQ,出现下面的图片

原因是,你想让系统运行一个程序,你首先得告诉它这个程序在哪,不然系统:“WTF”;

所以我们需要将QQ的可执行文件位置告诉系统,QQ可执行文件位置如下

所以我们在dos界面中找到QQ的可执行文件的路径,输入QQ,QQ就打开了:

但是,你关掉Dos后重新进入,输入QQ发现,又是上面的问题,这就意味着你要从Dos打开QQ的话,必须每次进入QQ.exe文件所在路径,每次都得给系统QQ.exe文件的绝对路径,这样很麻烦

于是英雄登场,一个一劳永逸的方法就是将QQ.exe的文件路径放在Path环境变量里面,以后要打开QQ就不用每次进入该路径了,下图是配上QQ.exe路径时的path变量

接着我们dos中不给路径直接输入QQ,就可以直接打开QQ了:

 

1.3  总结

path变量的作用是可以让我们在没有这个应用的路径下面打开我们需要打开的应用,前提是这个应用得在环境变量里面配置了路径

 

 

二.    为什么java要配置环境变量

 

2.1  为什么要配置jdk的环境变量

我们为什么要配置java(jdk)的环境变量呢

1. 因为我们没有配置 jdk的环境变量,所以在没有在jdk/bin目录下是运行不了 java.exe和javac.exe(具体关于jdk和javac的知识请点这里

那好办,我们可以去jdk/bin目录下运行java程序啊,但我们在bin目录下通过启动java.exe,然后再通过javac.exe要把一个java文件编译成class文件,这个class文件就生成在jdk/bin目录里了,这样不好,所以我们需要把jdk配置到path里面,这样在任何目录下都能运行java.exe和javac.exe来编译Java文件了,这样就不会让jdk/bin目录里有许多我们的Java文件和class文件。

 

2.2   如何配置

和上面一样,把jdk/bin目录加到path环境中去

       

配置完成后我们测试下:

在D盘的根目录新建一个HelloWorld程序,然后在dos里面运行

 

 

2.3  配置JAVA_HOME变量

如果我们需要配置多个 jdk 的环境变量,我们也需要把每个目录都添加到 path 中吗?这样 path 是不是就看起来很乱了呢?这时候,我们就需要一个 JAVA_HOME 变量了

在上面的编辑环境变量里面,我们有发现有些使用 %SystemRoot%system32 的变量值,但是我们在 cmd 中查看 path 环境变量的时候却没有发现有 %SystemRoot%system32 的字样,而是有个和他很像的 C:WINDOWSsystem32, 那是因为我们系统存在一个 SystemRoot 为变量名的变量,变量值是C:WINDOWS,而这个是隐藏的,我们无法看到,我们可以把这个变量名理解成我们 java 中的 int a = 1; int b = a; 后边的b是等于 a,而我们看到的效果是 a = 1,所以 b = 1;而不是 b = a 变量名.

配置步骤如下:

  1. 我们在系统变量这里点击新建:     
  2. 点击新建后弹出一个新建系统变量的窗体,然后把变量名填写为 JAVA_HOME ,把变量值填写成你 jdk 的安装目录(注意,不用 bin 目录),然后点击确定 
  3. 然后再编辑path环境变量,把刚才的配置的 jdk 的变量改成 %JAVA_HOME%binhjbl25.png
  4. 保存配置,打开一个 cmd 窗口,输入 path,可以看到,我们配置的环境变量的 %JAVA_HOME% 已经替换成刚才 JAVA_HOEM 变量的变量值了,而且 java 程序也能够运行

 

为啥要配置 JAVA_HOME,一定要用 JAVA_HOME 命名吗?

  1. 我们电脑如果装了多个版本的 jdk,我们只需要在 JAVA_HOME 中把 jdk 的目录添加进去,而不用在 path 里面加 bin 目录的路径
  2. 因为有些开发工具,如(eclipse,IDEA, tomcat)都会去扫描你的JAVA_HOME变量,看看你的电脑装了几个版本的 jdk。
  3. 可以不用 JAVA_HOME 这个名字当参数名,那么有些软件启动需要 JAVA_HOME ,例如 tomcat,当你不用这个命名,你就需要去修改 tomcat 的 bin 目录下的 catalina.bat 文件,才能启动 tomcat,何必呢?
    hjbl27.png

 

 

三.  配置 CLASSPATH 变量

我们配置 path 环境变量,只是告诉我们的电脑,我们装了 java ,这个应用放在哪里;而 CLASSPATH 就相当于 java 虚拟机的 path,它是用来告诉我们需要运行的 .class 文件时放在哪里。

配置CLASSPATH和JAVA_HOME配置类似,点击新建变量,变量名为CLASSPATH:

 

我们一定要配置 CLASSPATH 变量吗?一定要用 CLASSPATH 命名吗?

  1. jdk1.5 之后就不用再配置 CLASSPATH了,但是我们为了保证向下兼容 ,所以建议还是配置上为好。
  2. 在上面 JAVA_HOME 的图中,tomcat 也是会自动读取系统变量里面的 CLASSPATH。
### JDK 中配置环境变量的作用与必要性 在使用 Java 开发工具包(JDK)时,配置环境变量是一个关键步骤。其主要目的是确保操作系统能够在任意路径下识别并执行 JDK 提供的命令工具,如 `javac` 和 `java`。 #### 为什么需要配置环境变量? 当用户在命令行界面(如 Windows 的 CMD)中输入 `javac` 或 `java` 命令时,系统需要知道这些命令对应的可执行文件的具体路径。如果未配置环境变量,系统仅会在当前目录下查找相关程序,而不会自动搜索到 JDK 安装目录下的 `bin` 文件夹。例如,在未配置环境变量的情况下,只有在 `C:\Program Files\Java\jdk1.8.0_291\bin` 目录下才能执行 `javac.exe` 命令,一旦切换到其他目录,就会出现“不是内部或外部命令”的错误提示。 配置环境变量后,系统会在环境变量中指定的路径中查找命令。这样,用户可以在任意目录下运行 `javac` 和 `java` 命令,而无需每次都切换到 JDK 的安装目录。此外,某些开发工具和框架(如 Hadoop、Tomcat)在运行时也需要通过环境变量访问 `JAVA_HOME` 来定位 JDK 的安装路径,确保其能够正确调用 Java 运行时环境和编译工具。 #### 如何配置环境变量配置环境变量通常涉及两个关键变量:`JAVA_HOME` 和 `Path`。 - **JAVA_HOME**:用于指定 JDK 的安装路径。例如,如果 JDK 安装在 `C:\Program Files\Java\jdk1.8.0_291`,则 `JAVA_HOME` 应设置为该路径。这一步有助于其他应用程序通过 `JAVA_HOME` 变量直接引用 JDK 的安装位置,而无需硬编码路径。 - **Path**:用于指定命令搜索路径。在 `Path` 中添加 `%JAVA_HOME%\bin` 和 `%JAVA_HOME%\jre\bin`,这样系统就可以在任意位置执行 JDK 提供的命令。 配置完成后,用户可以通过在命令行中输入 `java -version` 和 `javac -version` 来验证环境变量是否配置成功。如果配置正确,系统会显示 Java 运行时和编译器的版本信息。 ```bash java -version javac -version ``` #### JDK 新版本是否还需要配置环境变量? 对于某些较新的 JDK 版本(如 JDK 11 或更高版本),在安装过程中可能会自动配置环境变量,因此用户可能不需要手动设置 `JAVA_HOME` 和 `Path`。然而,在某些开发场景中,尤其是需要多个 JDK 版本共存或依赖 `JAVA_HOME` 的应用程序(如 Hadoop、Maven)中,手动配置环境变量仍然是必要的。此外,对于使用较旧 JDK 版本(如 JDK 1.8)进行开发的情况,手动配置环境变量仍然是标准做法。 #### 总结 配置环境变量的核心目的是确保操作系统能够全局识别并执行 JDK 提供的命令工具。通过设置 `JAVA_HOME` 和 `Path`,不仅简化了命令行操作,还为依赖 Java 环境的其他软件提供了必要的路径信息。虽然某些新版本的 JDK 在安装时可能自动配置环境变量,但在开发环境中,手动配置仍然是推荐做法,以确保兼容性和灵活性[^1]。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值