回顾第一课中最简单的程序HelloWorld.java,咱们首先在cmd命令行中进入HelloWorld.java所在的目录,接着使用javac将HelloWorld.java转换成HelloWorld.class,而后再使用java运行HelloWorld.class获得程序的结果。这个过程当中发生了什么?
在这个过程当中,JAVA的编译系统首先须要找到javac.exe、java.exe,是javac.exe将HelloWorld.java转换成HelloWorld.class,java.exe运行HelloWorld.class,而这两个exe文件在java的安装目录下。 java
首先,它找到环境变量CLASSPATH
将Java 或者具备 Java 解释能力的工具(如浏览器)安装到机器(如PC机)中时,经过操做系统设定的CLASSPATH。
CLASSPATH包含了一个或多个目录,它们做为一种特殊的“根”使用,从这里展开对.class文件的搜索。
从那个根开始,解释器会寻找包名,并将每一个点号(句点)替换成一个斜杠,从而生成从CLASSPATH根开始的一个路径名(因此package foo.bar.baz 会变成foo\bar\baz或者foo/bar/baz;具体是正斜杠仍是反斜杠由操做系统决定)。浏览器
随后将它们链接到一块儿,成为CLASSPATH内的各个条目(入口)。
之后搜索.class文件时,就可从这些地方开始查找与准备建立的类名对应的名字。此外,它也会搜索一些标准目录——这些目录与 Java 解释器驻留的地方有关。工具
使用 JAR文件时要注意一个问题,必须将JAR文件的名字置于类路径里,而不单单是它所在的路径。
因此对一个名为tonls.jar 的 JAR文件来讲,咱们的类路径须要包括jar文件,以下为我本身的CLASSPATH,tools.jar和dt.jar的jar文件也包含在CLASSPATH中,而C:\Users\engineer\Desktop\JavaLearning只包含到文件夹:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Users\engineer\Desktop\JavaLearning;操作系统
理解了java编译系统寻找文件的机制,便可轻松理解package和import的设计,下节课介绍package和import命令行