Javac
documentation提供了所有必要的信息.但是,使用Ant或Maven命令行构建可能是有用的.
This页面提供了使用第一个javac和Ant构建一个简单项目的一个很好的例子.
这是一个示例项目,它如何使用javac进行编译.
这个项目的树结构是:
.
├── build
└── src
├── attacks
├── drivers
│ └── Driver.java
└── exceptions
└── MyException.java
有两个特殊目录 – 构建用于包含编译的类和src以包含源文件(可以在不同的子目录 – 包中).
以下命令编译整个项目并将结果放入构建目录.
javac -sourcepath src -d build src/**/*.java
-sourcepath src将目录src指定为编译器可以找到所有源的位置. -d构建选项告诉编译器放置编译文件的位置.
选项src / ** / *.java告诉编译器要实际编译哪些文件.在这种具体情况下,它会告诉javac将两个级别向下看,并在该级别选择所有* .java.
如果有不同级别的* .java文件需要指定的文件列表.为此,可以创建一个这样的列表作为一个外部文件,并传递这个文件作为javac的输入选项.
以下是在Linux / Unix下如何做到这一点:
find -name “*.java” > source.txt
上述命令创建文件source.txt,其中包含找到的* .java文件的完整路径.对于这个例子,它包含:
./src/drivers/Driver.java
./src/exceptions/MyException.java
为了编译项目,列出的源文件被刷新到source.txt中,可以使用以下命令:
javac -d build @source.txt
请注意,最后指定的@ source.txt告诉编译器在哪里查找源文件列表.还请注意,-sourcepath选项可以省略.
运行上述命令后,目录结构如何更改.
.
├── build
│ ├── drivers
│ │ └── Driver.class
│ └── exceptions
│ └── MyException.class
└── src
├── attacks
├── drivers
│ └── Driver.java
└── exceptions
└── MyException.java
可以看到,构建目录现在包含相应包中的编译的类文件.
而且,如果要运行它,假设例如,该驱动程序具有方法main,则以下命令执行该程序.
java -cp .:build:**/*.class drivers.Driver
请注意,文件分隔符:(冒号)在Unix下使用,Windows将其更改为; (分号).