Java环境配置的Path、CLASSPATH、JAVA_HOME的作用

一开始学习Java的时候配置这三个环境变量配置的死去活来的,但是因为当时学习的比较急,也没有怎么去专门了解环境变量配置的用处。结果今天一个学Python的师兄突然问我Java的这个环境变量配置的一些小细节,我也把当初在《疯狂Java讲义》上看到的相关内容给忘了不少,导致无法很完善地跟师兄讲解,反思了一下,补个笔记

JAVA_HOME的作用

  • 第一个作用:模块化

    在接下来的PATH、CLASSPATH配置路径时方便引用,减少配置时手动输入的路径(其实这不算啥特别有用的作用,毕竟一般输入路径都是直接打开JDK的根目录在上面的搜索栏复制路径粘贴的…)

    JDK路径改变后,不需要每个PATH进行更改,只需改变JAVA_HOME中的路径

  • 第二个作用:特殊性

    在Eclipse、NetBeans、Tomcat等软件中,他们通过搜索JAVA_HOME来寻找并使用已安装好的jdk

Path的作用

Windows操作系统根据Path环境变量来查找命令

  • 这样的解释可能大家不太能理解,举个栗子吧:如果我没有配置这个PATH,那么我在cmd中要使用java命令或者javac命令,我需要先cd加载到我存放这两个可执行文件的目录,然后才能运行这两个命令。否则会出现“‘java’不是内部或外部命令,也不是可运行的程序”。但是,如果我配置了PATH这个路径,那么我无论在哪个目录我都可以直接使用java和javac这两个命令进行操作

CLASSPATH的作用

在cmd中使用“java classname.class”这样的命令操作时,即在cmd中运行java程序时,JRE通过这个CLASSPATH去搜索执行的class文件

  • CLASSPATH的普遍配置是这样:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

  • 上面的解释可能也不够清晰,再举个栗子:比如说我已经配置好了CLASSPATH但是配置路径中不包括引号中的这个小黑点 ‘.’ (就是上面的普遍配置最前面的那一点),那么当你cmd中想要运行一个class文件比如“javac test.java”后会显示“找不到或无法加载主类”

  • 如下图 而这个环境变量的这个小黑点,’.‘小黑点起到的作用就是搜索当前路径,即我目前路径为D:\,则搜索这个路径下的test.class文件
    在这里插入图片描述

  • 如果除了我上面说的这种情况,使用java命令还是显示这种“找不到或无法加载主类”的错误,可以看我的另一篇文章
    JAVA杂记——找不到或无法加载主类

  • 再顺便科普一下,其实这个CLASSPATH环境变量已经没有必要去配置它了,只有早期的JDK版本需要设置CLASSPATH变量,在JDK9后,它的lib目录中都已经不包含dt.jar和tool.jar这两个包了,而‘.’的搜索当前路径下的class文件这个功能,不去设置CLASSPATH的话,这就是它的默认搜索路径。
    jdk1.4以后(不包括1.4)的jdk版本用户可以尝试着删除CLASSPAHT然后进行java命令的使用测试,其实是没有收到影响的。

希望我的文章能够帮到大家

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值