如何编译

配置好环境变量后,在控制命令台中输入以下指令:

javac 文件名.java
java 文件名

JavaSE-04-1

javac.exe和java.exe在Path环境变量中可以查询到,HelloWorld.java和HelloWorld.class在当前目录下,所以以上命令可以成功执行。

源文件中有多个外部类

一个源文件中可以有多个外部类,但只能有一个类被public修饰,源文件的名字必须跟public修饰的那个类名保持一致。(暂不讨论内部类)。

一些教科书上对此的描述为:

  1. 每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息。
  2. public类的名称必须完全与含有该编译单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。
  3. 虽然不是很常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。

一个源文件中如果有多个外部类,编译后每个类会产生独立的字节码文件。例如,源文件为:

public class HelloWorld{
	public static void main(String[] args){
			System.out.println("HelloWorld!");
	}
}
class HelloWorld2{
	public static void main(String[] args){
			System.out.println("HelloWorld2!");
	}
}

用javac命令编译后产生了两个独立的字节码文件:

JavaSE-04-2

执行的时候执行各自独立的字节码文件即可:

JavaSE-04-3