java_5

来源:互联网 发布:p2p网络金融理财产品 编辑:程序博客网 时间:2024/05/05 11:44
所以呢,类库就是工具提供给你的类了。这些类也是放在硬盘上啊,哦,顺便讲讲jar文件了,jar文件就是一堆的class文件打包,先知道这个吧。
是啊,都是在硬盘上的东西,我JVM怎么在需要的时候找到它们呢?通过类装载器,先简单的说吧,类装载器就是根据类的全名去从硬盘上把相应的类的class文件找到(其实是非常的复杂的,后面再说)。类的全名这个概念晓得么?就是包的名字加类本身的名字了,包知道吧?就是目录了。

于是JVM中给出一个类的全名给类装载器,类装载器拿到了,那到底怎么下手呢?文件系统这么大,我到底从哪里开始找呢?这样就到了环境变量的设置了,类装载器是从环境变量设置的目录开始找,这只是简化版的啊,再次声明一下。这样就出来了一个保证原则,环境变量不管你怎么玩,你总得保证类装载器能够在那些路径下找到相应得类吧。有了这条原则,你就知道了,哦,jdk的那个lib目录似乎应该打到环境变量中,因为那里面包括一些启动类和类库。当然,你自己写的类也要让类装载器找到吧?比如,你是在控制台上run的,写一个命令,java test,就是runtest类,这个test一传到JVM了,JVM给类装载器,类装载器去环境变量中找test.class文件,那么你怎么才能保证它能找到呢?那么就应该把控制台的当前目录打到环境变量中,也就是一个“.”了,一般打在最前面,这样类装载器就会首先从控制台的当前目录找test.class文件,ok,这样就找到了。还有一个,类装载器是从环境变量开始,先找到哪个就用哪个,如果可以找到多个test.class的话。

这样就设置好了classpath了。还有一个没有设置,就是控制台上你敲的javac和java命令,是啊,你随便到一个目录敲一个java,那控制台怎么知道这个是编译的命令的?上面说到JDK的时候说了,编译和运行是JDK负责的,于是你就自然想把那个java和javac和JDK目录里面的某个东西联系起来丫。于是你就要把JDK的bin目录打到环境变量中的path下面。path是那些可执行命令的入口,比如javac命令,你到bin下面去看,就可以发现javac.exe,你把bin打到了path下去,然后在控制台敲javac,控制台就晓得去bin下面找到javac.exe来运行啊。这样就ok了。

希望你的第一个java程序可以运行了。