《Thinking in java 》第四版P110-P112详细的讲解的关于Java解释器的相关作用和实现流程。这里进行摘抄一下:
- java解释器的作用
编译一个.java 文件时,我们会获得一个名字完全相同的输出文件;但对于.java 文件中的每个类,它们都有一个.class 扩展名。因此,我们最终从少量的.java 文件里有可能获得数量众多的.class 文件。
如以前用一种汇编语言写过程序,那么可能已习惯编译器先分割出一种过渡形式(通常是一个.obj 文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或者与一个库封装到一起(生成一个库)。但那并不是 Java 的工作方式。一个有效的程序就是一系列.class 文件,它们可以封装和压缩到一个 JAR 文件里(使用 Java 1.1 提供的 jar 工具)。Java 解释器负责对这些文件的寻找、装载和解释。
- Java 解释器的工作程序如下:
1.首先,它找到环境变量CLASSPATH
2.CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。
3.从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从 CLASSPATH 根开始的一个路径名(所以package foo.bar.baz 会变成foo\bar\baz或者foo/bar/baz;具体是正斜杠还是反斜杠由操作系统决定)。
4.随后将它们连接到一起,成为 CLASSPATH 内的各个条目(入口)。以后搜索.class文件时,就可从这些地方开始查找与准备创建的类名对应的名字。此外,它也会搜索一些标准目录——这些目录与Java 解释器驻留的地方有关