path:
提供windows命令行中java指令的可执行文件路径,当我们在命令行中键入指令时,根据环境变量中的path值,找到对应的指令可执行文件进行执行,在我的电脑上java的path值为:
打开路径所指文件夹后:
红线所指处为自己常用指令的可执行文件。
classpath:
当我编译好一个java文件后,运行,JVM如何知道这个java文件对应的class文件在哪呢?classpath的作用就是通知JVM用户类的存放路径。在我的电脑上classpath的值为:
当运行我们的java程序(以下均指A)时,JVM会首先在当前目录下查找A,接着会到C:\Java\jdk1.8.0_144\lib查找A,需要注意,.号表示当前目录,上述两个路径代表JVM查找A时的顺序,即先到当前目录下查找,然后到C:\Java\jdk1.8.0_144\lib下查找,若我们去掉.号(即只留下C:\Java\jdk1.8.0_144\lib),JVM查找A的顺序为先到C:\Java\jdk1.8.0_144\lib查找,接着会默认到当前目录查找!以上结论为实验后得出,实验方案如下:
实验方案
实验将进行三次,对应的classpath如下:
1、.;C:\Java\jdk1.8.0_144\lib
2、C:\Java\jdk1.8.0_144\lib;.
3、C:\Java\jdk1.8.0_144\lib
在C:\Java\jdk1.8.0_144\lib下,保存Try.class文件,对应代码如下:
public class Try {
public static void main(String[] args) {
System.out.println("这是保存在C:\\Java\\jdk1.8.0_144\\lib的Try.class文件");
}
}
在E盘同样保存Try.class文件,对应代码如下:
public class Try {
public static void main(String[] args) {
System.out.println("这是保存在E盘的Try.class文件");
}
}
接下来开始实验:
1、classpath为:.;C:\Java\jdk1.8.0_144\lib
2、classpath为:C:\Java\jdk1.8.0_144\lib;.
3、classpath为:C:\Java\jdk1.8.0_144\lib
此时删去保存在C:\Java\jdk1.8.0_144\lib的Try.class文件
每次我们更改完classpath后一定要重新启动命令行