关于“.”目录
默认包
如果是同一个文件中定义,不加入".",编译能通过,但运行时报错;
而如果是不同文件定义的,不加入".",编译就通不过。
我想应该这样解释:同一个文件中,javac就不需要去查找classpath,但JVM定位class时必须查找classpath。
还发现一点:
如果classpath为空,或者干脆没定义,javac、JVM是可以自动找到当前目录的;
而只要不为空,就必须加"."了。
对于JAVA自带的包,不需要定义classpath。
自定义包
必须放在包名指定的目录层次结构中
即使定义了".",你也不能期望能够访问放在当前目录的其他包的类
例如定义access.desert包,那它的类必须放在access/desert目录下
定义“.”,access/desert放在当前目录下就可以访问
如果是在放在其它路径,还必须在classpath加入相应路径