CLASSPATH是在开发之中,最为有用处的一个属性,下面来了解一下CLASSPATH的基本作用。
现在假设有一个Hello.class文件保存在了:“E:\tesedemo”目录下,只要将命令行动方式也设置此路径下才可以使用“Java.Hello”去解释Hello.class文件。但是如果说现在要切换到了其他磁盘上。
这个时候如果执行了“java.Hello”,那么会无法找到类。因为默认情况下,类都是从当前所在的目录中进行加载的,如果想要改变加载目录,就使用CLASSPATH。
范例:设置CLASSPATH
SETCLASSPATH=路径 |
SETCLASSPATH=e:\testdemo |
一旦设置之后,不管在哪个磁盘下只要解释Java程序都会跑到同一个目录中。但是严格来讲,所有的程序解释时都跑到同一个目录下,是不方便开发的,最好的做法还是应该从当前所在路径下加载类,那么就可以将CLASSPATH设置为:“.”。
SETCLASSPATH=. |
可以发现,即使此处没有设置CLASSPATH,它也是默认从当前所在路径之中加载类。在以后的开发之中,有可能在你安装一些程序的时候就会出现,安装程序去修改已经设置好的CLASSPATH,这样就可能导致你的程序无法正常执行,就需要进行手工的修改,但是最好的修改不是使用命令,而是直接设置一个属性。
当Java命令运行的时候实际上JVM会自动的找到CLASSPATH属性,而后找到此属性对应的内容,通过指定内容设置的路径来加载所需要的类。
面试题:请解释PATH和CLASSPATH的区别?
PATH:是属于操作系统属性,定义所有可执行程序的路径;
CLASSPATH:是Java程序解释类文件时所使用的加载路径。
总结:
CLASSPATH主要目的是定义类的加载路径,不管定义了多少个路径,一定要定义一个“.”(表示由当前所在目录进行类的加载)。