path环境变量是系统环境变量中的一种,它用于保存一系列的路径,每个路径之间以分号分割。当在命令行窗口中运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在,会继续在path环境变量中定义的路径下寻找这个文件,如果仍未找到,系统会报错。由于“java”命令和“javac”命令位于同一个目录bin中,因此在配置完path环境变量后,同样可以在任意的路径下执行“java”命令。
classpath环境变量也用于保存一系列的路径,它和path环境变量的查看和配置方式完全相同。当java虚拟机需要运行一个类时,会在classpath环境变量中所定义的路径下寻找所需的class文件。
path与classpath的区别:
path:先在当前目录下找,没找到,再到path环境变量配置路径中找,还未找到,就报错。——先目录后路径。
classpath:先查找配置路径,再在当前目录路径下查找,没找到且无分号,则报错,有分号再在当前根目录路径下查找。先路径后目录。
因此,如果你想任意路径下都能编译java文件并生成class文件,是不可行的,只有在java文件所在的目录下才可以编译并生成class文件。即使假设可行,那么生成class文件会分布在任意目录下,文件管理起来也不是很方便。
|