CLASSPATH环境属性

假设在d:\mldnjava目录下提供有一个Hello.class的字节码文件
  假设说当前用户所在的目录为“d:\mldnjava”,那么在这个情况下可以直接使用java命令进行Hello.class字节码文件的解释
 在这里插入图片描述
但是如果说现在脱离了这个目录,将当前的目录修改了“c:\”(c盘目录下并没有Hello.class字节编码文件),如果再次进行程序解释,这个时候会出现如下的错误提示信息。
在这里插入图片描述
因为当前目录中没有字节码,那么现在的需求就是:可以在不同的目录中都执行d:\mldnjava\Hello.class文件。所以在这样的处理要求下就只能依靠CLASSPATH环境属性来完成
范例:定义CLASSPATH环境属性
SET CLASSPATH=d:\mldnjava
在这里插入图片描述
当设置了CLASSPATH之后,这个时候在Java程序解释的时候会自动的通过CLASSPATH所设置的路径进行类的加载,所以可以得出一个结论:
JVM解释程序的时候需要得到CLASSPATH的支持。很明显
但是有一个问题,发现默认情况下所有解释的类都是从当前所在的目录中加载的,所以可以得出一个结论:CLASSPATH的默认设置为当前目录加载类文件。
很明显如果到处去设置CLASSPATH就会造成整个系统操作的混乱,那么从正常的角度来讲对于CLASSPATH还是应该采用默认设置方式,所以这个时候要想通过当前目录加载,则可以将CLASSPATH设置为“.”。
范例:从当前所在的路径加载类
SET CLASSPATH=.
在这里插入图片描述
在这里插入图片描述
在一些时候如果你安装了一些与Java开发的程序软件的时候,他有可能自动的修改默认的CLASSPATH,也就是说这个“.”的配置会消失。这种情况下就必须利用命令自己重新设置回来。
但是需要注意的是,现在的CLASSPATH是在一个命令行下的配置,如果该命令关闭了,那么相关的属性配置也将消失,所以最好的做法将其定义为全局属性,则可以直接在系统中追加一个属性信息。
在这里插入图片描述面试题:请问PATH和CLASSPATH区别?
PATH:是操作系统提供的路径配置,定义所有可执行程序的途径;
CLASSPATH:是由JRE提供的,用于定义Java程序解释时类加载路径,默认设置为当前所在目录加载,可以通过“SET CLASSPATH=路径”的命令形式来进行定义;
关系:JVM→CLASSPATH定义的路径→加载字节码文件 JRE:Java Runtime Environment