我们现在做java或者Android开发都是用IDE的,IDE帮我们配置好了各种环境,包括java搜索路径classpath,所以,如果java基础不牢的话,都不知道classpath是什么东西。
在学python的时候,看到有对搜索路径的讲解,所以就想了解一下java的搜索路径。
这里说一下我的理解,可能有地方不对。
我们在创建类文件的时候,都会用到package,这个包是和实体目录对应的,可是需要注意的是,这个只是为了区分类的不同,包名.类名,才是完整的一个类。这个类是可以拷贝到其它地方。
在编译的时候和包名没有任何关系,只要能顺着放类文件的路径找到类文件,就可以了,不管类文件中的包名是啥。用Java命令执行的一个类的时候(比如java HelloWorld),用到某个类就需要去加载类,加载类就需要找到对于的.class文件,这是就需要有搜索路径的支持了,要不然去哪里找呢?
我们都知道java源码是用javac工具编译的,编译的时候,可能用到搜索路径,也可能用不到。
如果自己写的类,有用到别人写的类,不是系统的类,那么编译的时候,编译器要能通过搜索路径找到这些类才可以。
如果自己写的类,没有用到别人写的类,那么编译的时候,是和搜索路径没关系的,只要根据文件路径能到要编译的类文件就行。
IDE是怎么设置搜索路径的呢?目前我还不知道。
java类路径classpath和包
聊聊Java的CLASSPATH设置
配置JAVA环境变量中CLASSPATH变量的作用
Mac下CLASSPATH配置的两种方式
Java import以及Java类的搜索路径