回顾Java环境变量配置——ClassPath、Path的作用

​ 学习是一个反复的过程,要不断的回归基础,这次回的有点大了,回到了Java的环境变量设置,我们来回顾一下配置Java开发环境的整个过程。


1、在Orcle官网下载JDK后安装到本地

在这里插入图片描述

这里有一个知识点

JDK、JRE、JVM的关系
  • JDK:Java Development Kit 是Java的标准开发工具包(普通用户只需要安装 JRE来运行 Java 程序。而程序开发者必须安装JDK来编译、调试程序)。它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环境JRE,以及常用的Java基础类库等,是整个JAVA的核心。这里强调一下jdk目录下lib文件夹下的dt.jar和tools.jar这两个基础类库,后面会说明这两个包的作用;

  • JRE:Java runtime environment 是运行基于Java语言编写的程序所不可缺少的运行环境,用于解释执行Java的字节码文件。

    也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。

  • JVM:Java Virtual Machine 是Java的虚拟机,是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。

    所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。

    也就是说大概有如下图所示的关系:

在这里插入图片描述


2、配置环境变量

​ 我们主要配置了三个系统变量:JAVA_HOME、Path、ClassPath,先来解释一下每个系统变量代表的意思。

  • JAVA_HOME

    变量值为jdk的安装目录,如:D:\Java\jdk1.8.0_191,配置该变量的目的是为了方便后面两个变量,便于我们更好的管理。如果以后我们重新安装了jdk我们再来修改环境变量的时候只要修改JAVA_HOME就可以了,不配置JAVA_HOME也是可以的,但是还是建议配置,因为Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

  • Path

    变量值为 【%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】

    配置Path路径,是为了让系统知道你要用的命令在哪里(省去每次执行命令都要先定位到可执行文件所在目录,然后再执行命令这一麻烦步骤),也就是说你可以在计算机的任何目录下运行java/javac指令,因为系统会根据命令去扫描Path路径,查找到java.exe。为什么会这样呢?我们来分析一下变量值的三个部分。

    一、%JAVA_HOME%\bin;
    在这里插入图片描述

    看到前面说的java.exe了吧,这个目录下还有其他很多可执行文件。把这个文件夹放到Path下,当你在cmd窗口运行某个指令时,系统就会首先进行扫描你配置的Path目录下有没有这个文件,有的话就执行,没有就报错呗。如果你不配置,你运行java指令肯定是不成功的。

    二、%JAVA_HOME%\jre\bin;

    前面说了jre和jdk的关系,配置这个变量的目的是为了确保jre(运行)在你使用javaIDE的时候不产生问题。你可以打开这个文件夹,里面也有java.exe等执行文件,也就是说只要有jre我们就可以运行java程序,

  • ClassPath

    类加载路径,作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过ClassPath变量来寻找类的.class文件。

    我们来看一下ClassPath变量的值:

    【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 】

    一、.;

    .代表当前目录;

    百度解释:这是个优先级的问题。“.“代表的是挡墙路du径,以他开头,是为了程序zhi运行时,让他在当前路径去寻找额外的dao一些资源,比如说,你自己写的一些类。”;"是起着分割的作用,如果在前面的目中没有找到想要,那么会去很分号后面的目录中查找,就这样一级一级的找下去,知道classpath末尾,如果还没有找到,就报异常!

    二、%JAVA_HOME%\lib\dt.jar;

    dt.jar是关于运行环境的类库,tools.jar是工具类库 设置在classpath里是为了让jvm能根据路径找到这些所需的依赖。我们打开看看这另个包,里面都是jvm运行用到的.class文件。

在这里插入图片描述

3、总结

  • path是Windows查找.exe文件的路径;classpath是jvm查找.class文件的路径

  • JAVA_HOME

    1. 为了方便引用;
    2. 归一原则;
    3. 第三方软件会引用约定好的JAVA_HOME变量, 否则不能正常使用该软件;
  • CLASSPATH

    1. 这个变量设置的目的是为了程序能找到相应的".class"文件;
    2. 设置CLASSPATH中的dt.jar和tools.jar,因为这些jar包可能在编译运行java类中用到,如果一个代码程序引用了一个包而这个包在其他盘里则会出现报错,只有我们把包的地址给添加进CLASSPATH中,原程序则可以执行;
  • PATH

    每次都使用%JAVA_HOME%\bin\java 来执行java命令将会很繁琐 ,我们将%JAVA_HOME%\bin添加到PATH路径, 我们则可以在任何路径下直接用java来执行命令了,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值