Java对象与类——类路径

1.首先了解Java的环境配置:

    转载:https://blog.csdn.net/u010297957/article/details/51334951

2.类路径是所有包含类文件的路径的集合:

    在UNIX中,类路径中不同项目之间采用冒号(:)分隔:/home/user/classdir:.:/home/user/archive.jar

    在Windows环境中,则以分号(;)分隔:c:\classdir;.;c:\archive.jar

    .表示当前目录

   类路径包括:基目录/home/user/classdir或c:\classdir;当前目录(.);jar文件/home/user/archives/archive.jar或c:\archives\archive.jar

    从Java SE 6开始,可以在JAR文件目录中指定通配符,如下:

    /home/user/classdir:.:/home/user/archives/'*'或者c:\classdir;.;c:\archives\*;

    但是在UNIX中进制使用*防止shell命令进一步拓展

3.javac与jvm:

    javac编译器总是在当前的目录中查找文件,但Java虚拟机仅在类路径中有“.”目录的时候才会查看当前目录,如果设置了类路径但忘记了包含“.”目录,则程序仍然可以编译,但是不能运行

4.jvm查找类文件的过程:

    假设虚拟机要搜寻com.h.c.E类文件,首先检查存储在jre/lib和jre/lib/ext目录下的归档文件中所存放的系统类文件,然后看看类路径:/home/user/classdir/com/h/c/E.class  ;  com/h/c/E.class从当前目录开始 ; com/h/c/E.class inside /home/user/archives/archive.jar

5.编译器定位:

    当引用一个类却没有指出这个类所在的包,那么编译器将首先查找包含这个类的包,并查询所有的import指令

扫描二维码关注公众号,回复: 1681417 查看本文章

    编译器还会查看源文件是否比类文件新,如果是的话就会自动重新编译

6.设置类路径:

    最好采用-classpath(或-cp)选项指定类路径:

    java -classpath /home/user/classdir:.:/home/user/archive.jar MyProg

    或者

    java -classpath c:\classdir;.;c:\archives\archive.jar MyProy

    也可以通过设置CLASSPATH环境变量完成操作

    在Bourne Again shell(bash)中:export CLASSPATH=/home/user/classdir:.:/home/user/archives/archive.jar

    在Windows shell中:set CLASSPATH=c:\classdir;.;c:\archives\archive.jar

    6.1建议:

        不要把CLASSPATH设置为永久不变的值

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80673121