在了解java的classpath之前先来看看java的运行机制
1.首先是编译,将.java文件编译成虚拟机认识的二进制文件。这个过程需要的命令是javac 可以在jdk的bin目录中找到,javac.exe(windows 下文件以.exe结尾)
2.运行。将虚拟机认识的class二进制文件解析成机器码运行。这个过程需要的命令是java 在classpath的目录中找编译成的class文件加载到虚拟机运行。
首先将编译成虚拟机认识的二进制文件放到某一目录文件夹下(即生成的class文件)
运行时查找classpath 文件的路径,一般的文件路径都是:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
. 代表在当前的现在当前的目录下寻找class文件。可以设置成自己的工作空间的目录。
总结:
classpath 只在运行时有查找class文件的作用,防止系统找不到class文件。
付:(有人说为什么不查找整个磁盘,我想这个大概有两个原应:1.安全问题2.效率问题3.多个文件都出现不知道加载不知道运行那个的问题)
1.因为如果虚拟机能查找整个磁盘的话,那么某些人可以将一些恶意的代码加载入虚拟机,造成虚拟机的瘫痪。
2.试想现在的普通磁盘都到T的级别,服务器就更不用说。所以在整个磁盘下查找class文件效率会十分低下。
3.在不同的操作系统中统一文件夹下不能存在同名的文件,但是不同目录下却可以。所以在不同目录下如果存在同名class文件,虚拟机就不知道要加载哪个文件。