Java的源文件是指以.java为后缀的文件,其中包含了Java程序的源代码。当我们需要构建一个Java应用程序时,需要将这些源文件编译成以.class为后缀的字节码文件,Java虚拟机能够识别这些字节码文件并运行它们。
在Java中,源文件的组织方式是通过包来实现的。包是一种用于组织类的机制,它可以将相关的类放在一起,方便管理和使用。每个Java源文件都必须包含一个package语句,指定该源文件所属的包名。例如,一个名为Student的类,如果要放在名为com.example的包中,则它的源文件开头应该写上:
package com.example; public class Student { // ... }
这个例子中,Student类的完整类名就是com.example.Student。它定义在名为com.example的包中,这个包有可能是嵌套在其他包中的,例如com.example.school。
当我们编写Java程序时,通常要使用若干个不同的包,这些包的源文件可能来自不同的目录或者jar文件。在编译和执行Java程序时,需要确保这些源文件都能被正确地找到。Java编译器和虚拟机通过一个叫做“classpath”(类路径)的机制来查找包中的类。类路径是一组用于搜索类文件的根目录,多个目录之间用冒号或分号隔开(冒号是在Unix和Linux平台上使用的分隔符,分号是在Windows平台上使用的分隔符)。例如,下面的命令可以编译一个Java源文件,并将编译得到的字节码文件放在一个名为target的目录中:
javac -d target com/example/Student.java
在上面的命令中,-d选项指定了编译器输出的字节码文件的目录。编译器会自动创建这个目录,如果需要嵌套的子目录也会创建它们。例如,如果命令行中指定了两个源文件 com/example/Student.java 和 com/example/school/Teacher.java,则编译器会在target目录下分别创建com/example和com/example/school两个目录,并把编译结果放在这两个目录中。