2.3 编译并运行Java程序
经过前面的讲解,相信大家对Java程序已经有了大致的了解。本节将详细讲解如何编译并运行Java程序。
知识点讲解:
2.3.1 编译Java程序
在运行Java程序之前,我们首先要将它的代码编译成可执行的程序,为此,我们需要用到javac命令。由于我们在前面已经把javac命令所在的路径添加到了系统的PATH环境变量中,因此现在可以直接调用javac命令来编译Java程序了。另外,如果直接在命令行终端中输入javac命令,其后不跟任何选项和参数的话,它会输出大量与javac命令相关的帮助信息,读者在使用javac命令时可以参考这些帮助信息。在这里,我们建议初学者掌握javac命令的如下用法。
javac -d destdir srcFile
在上述命令中,-d是javac命令的选项,功能是指定编译生成的字节码文件的存放路径(即destdir)。在这里,destdir必须是本地磁盘上的一条合法有效路径。而srcFile则表示的是Java源文件所在的路径,该路径既可是绝对路径,也可以是相对路径。通常,我们总是会将生成的字节码文件放在当前路径下,当前路径可以用点“.”来表示。因此,如果以之前的first.java为例,我们可以首先进入它所在的路径,然后输入如下编译命令。
javac -d . first.java
假设first.java所在的路径为“C:\Users\apple”,则整个编译过程在CMD窗口中的效果如图2-17所示。运行上述命令后,会在该路径下生成一个编译后的文件first.class,如图2-18所示。
图2-17 CMD窗口中的编译过程
图2-18 生成first.class文件
2.3.2 运行Java程序
待完成编译之后,我们就需要用到java命令来运行程序了。关于该命令,我们同样可以通过在命令行终端中直接输入不带任何参数或选项的java命令来获得其帮助信息。在这里,我们需要用到的java命令的格式如下所示。
java <main_class_name>//<main_class_name>表示Java程序中的类名
请一定要注意,java命令后的参数应是Java程序的主类名(即main()方法所在的类),它既不是字节码文件的文件名,也不是Java源文件名。例如,我们可以在命令行终端中进入first.class所在的路径,输入如下命令。
java first
上述命令会输出如下结果。
第一段Java程序!
在控制台中,完整的编译和运行结果如图2-19所示。
图2-19 控制台中完整的编译和运行结果
另外需要提醒的是,初学者经常容易忘记Java是一门区分大小写的语言,例如在下面的命令中,我们错误地将first写成了First,这会造成命令执行失败或异常。
java First
2.3.3 Java 11新特性:新的程序运行方式
从Java 11开始新增了一个特性:启动单一文件的源代码程序。单一文件程序是指整个程序只有一个源码文件。这时在控制台中使用如下格式即可运行Java文件,从而省掉了编译环节。
java Java文件名
以上面的Java文件first.java为例,在运行之前先不编译它,而是希望Java启动器能直接运行文件first.java。此时只需要将控制台命令放到程序目录中,然后运行如下命令即可。
java first.java
假设文件first.java位于本地计算机的“H:\eclipse-workspace\qiantao\src”目录下,则上述直接运行方式在控制台中的完整过程如下。