什么是CLASSPATH?
答: classpath类似于windows中的系统环境变量path。
在windows中,如果要想在DOS命令窗口中执行一个程序。系统会先去当前文件路径下找对应命令的执行程序。如果找不到,就会到系统环境变量path中挨个遍历每一个路径。看那个路径下有当前命令的执行程序,然后执行该程序。系统环境变量path隶属于windows操作系统,告诉系统去哪里找可执行的运行程序。
在Java中,我们编写的程序是通过 javac 命令 生成字节码文件 .class 文件 ,然后是使用java 命令 运行字节码文件。 在这个过程中,java 命令 是将 .class 文件 交给 JVM 进行运行。所以,在使用java 命令 时,需要指明 .class 文件 的文件路径。如果文件路径找不到那么 JVM 就会到系统的环境变量中找 CLASSPATH 的一个环境变量。然后挨个遍历CLASSPATH 环境变量 配置的路径,找对应的 class 文件 ,然后执行。这里的 CLASSPATH 环境变量 隶属于Java 的 JVM ,告诉 JVM 去哪里找 .class 文件 。
简单的例子
在当前路径下编译运行:
换个文件目录,再使用 java 命令:
配置CLASSPATH路径
测试运行
按下 键盘 win + R,输入CMD
输入命令:
重点
但是这样就一个问题了,当我们把字节码文件放到其他地方。不再是CLASSPATH指定的目录,进行运行。
注意:当我们在系统环境变量中配置了 CLASSPATH 环境变量后,JVM只会到 CLASSPATH 环境变量 配置的路径中找 class文件。
我们知道在环境变量中,可以配置多个路径。我们想要在那个class文件 目录下执行java 命令 都能运行,就可以让它先从当前目录下找,找不到再去配置的其他路径中找。所以,就要把当前路径配置到第一个,优先从当前路径开始找。在windows中 '.' 就代表当前路径。
这样太过于局限了,所以还是不配置 CLASSPATH 环境变量 ,要想执行那个class文件就到那个目录下执行 java 命令。(根据个人喜好配置)。