1.5.3 运行类文件

有了类文件,接下来就可以运行它了。在命令行窗口输入“java HelloWorld”,注意不要在HelloWorld后加“.class”,程序将在命令行窗口中打印一行文字,如图1-15所示。

图1-15 成功运行Java类文件

现在,请读者思考两个问题。

(1)Java解释器是如何找到HelloWorld.class这个类文件的?

(2)HelloWorld类用到了JDK类库提供的System类,后者又是如何被找到的?

前面配置的Classpath环境变量指定了两部分内容——“.”和“rt.jar”,前者代表命令行窗口的当前工作路径。由于在运行HelloWorld类之前,已经将当前工作路径切换到了HelloWorld.class文件所在的路径(即D:\MyJavaSource),因此Java解释器能在该路径下找到相应的类文件。

如前所述,多个Java类文件可以被压缩为一个zip格式的、扩展名为jar的文件,即每个jar文件都相当于一个目录。读者可用解压缩工具查看rt.jar的目录结构,如图1-16所示。

图1-16 查看rt.jar文件

当把某个jar文件加到Classpath后,Java运行环境就能根据Classpath环境变量找到该jar文件,从而找到其中所有的类。HelloWorld类所引入的System类就在rt.jar中(具体位于java目录下的lang目录中),而该jar文件已被加到Classpath环境变量中了。

可见,Classpath环境变量的作用是让Java运行环境知道到哪里去找程序需要的类文件,因此,完全可以将编译出来的类文件所在的路径加到Classpath中[4]。若程序用到了第三方jar文件中的类,则应该将这些jar文件(包括其所在路径)也加到Classpath环境变量中。


[1]推荐初学者使用Notepad++(https://notepad-plus-plus.org)。IDE则推荐Eclipse,具体见附录A。

[2]重命名Java源文件时,应先让操作系统显示出源文件的扩展名,以便对其进行更改。具体操作为:任意文件夹窗口 → 查看 → 选项 → 查看 → 取消选中高级设置中的“隐藏已知文件类型的扩展名”→ 确定。

[3]CD(Change Directory,改变目录)是命令行的内部命令,用于改变命令行的当前工作路径。

[4]例如,可以将D:\MyJavaSource加到Classpath,这样就可以在任何工作路径下直接输入“java HelloWorld”以运行HelloWorld类。通常很少这样做,因为class文件所在的路径往往不固定。另一方面,既然配置了“.”,故只要先将工作路径切换到class文件所在路径,便能找到该路径下的class文件。