Java类路径问题
注:类路径不仅仅作用于直接运行的类,import其中的类时,同样处理
详见:传送门
类路径相关问题
源文件中的import是给javac工具看的。javac遇到import是要查找类,只会将import后的字符串看作类名,因此必须以.做分隔。在命令行中使用javac工具是要编译源文件,也就是说javac工具此时要找的是文件,此时javac工具只会将它后面的字符串看作文件名,故用/分隔。同理,在命令行中使用java工具是要查找类,因此java工具只会将它后面的字符串看作类名,因此必须以.分隔。
1、java命令是让虚拟机执行javac编译好的.class文件。虚拟机通过 classloader 来装载这些字节码, 也就是通常意义上的类。这里就有一个问题, classloader 从哪里知道 java 本身的类库及用户自己的类在什么地方呢?
答:缺省值 ( 当前路径 ) ,或者要有一个用户指定的变量来表明,这个变量就是环境变量:类路径 (classpath) ,或者在运行的时候传参数给虚拟机
2、编译的过程和运行的过程大同小异,都需要使用到类路径, 只是一个是找出来编译, 另一个是找出来装载。(其实还有一个jdk工具:javadoc也需要查找类,即也需要使用类路径)
3、虚拟机按以下顺序