2.12 定义并运行Java程序
Java 程序包含一系列相互作用的类定义,但不是每个 Java 类或 Java 文件都能当成程序。若想创建程序,必须在一个类中定义一个特殊的方法,签名如下:
public static void main(String[] args)
main() 方法是程序的主要入口,Java 解释器从这里开始运行。这个方法的参数是一个字符串数组,没有返回值。main() 方法返回后,Java 解释器也就退出了(除非 main() 方法创建了其他线程,此时,解释器会等到所有线程都结束后才会退出)。
Java 程序通过 Java 解释器(java)运行,并且要指定 main() 方法所在类的完全限定名称。注意,指定的是类名,而不是包含类的类文件名。命令行中指定的其他参数会传给 main() 方法的 String[] 参数。可能还要指定 -classpath(或 -cp)选项,告诉解释器在哪里寻找程序所需的类。例如,在下述命令中:
java -classpath /opt/Jude com.davidflanagan.jude.Jude datafile.jude
java 是运行 Java 解释器的命令;-classpath /opt/Jude 告诉解释器在哪里寻找类文件;com.davidflanagan.jude.Jude 是要运行的程序名(即定义 main() 方法的类名);datafile.jude 是一个字符串,作为字符串数组的一个元素,传给 main() 方法。
运行程序有一种简单的方式。如果把程序及其所有辅助类都正确打包到一个 Java 档案(Java archive,JAR)文件中,那么只指定 JAR 文件的名称就可以运行这个程序。下面这个示例展示如何运行 Censum 垃圾回收日志分析程序:
java -jar /usr/local/Censum/censum.jar
在某些操作系统中,JAR 文件能自动执行。在这些系统中,可以直接运行:
% /usr/local/Censum/censum.jar
第 13 章会详细说明如何执行 Java 程序。
