有没有办法将Java源文件(*.java
)编译到另一个目录?
如果我的包文件结构如下:
Mathematics ->
Formulas ->
src ->
// source files containing mathematical formulas...
bin ->
// class files containing mathematical formulas...
Problems ->
src ->
// source files containing mathematical problems...
bin ->
// class files containing mathematical problems...
我想分离源文件和类文件以保持文件夹的有序性,但我目前必须在每次编译后将所有类文件从src
文件夹复制到bin
文件夹。
有没有办法通过将类文件编译到javac
命令中的另一个文件夹来简化此过程?
答案 0 :(得分:28)
是的,绝对 - 使用-d
选项指定输出目录:
javac -d bin src/foo/bar/*.java
请注意,您指定的目录是输出结构的 root ;将自动创建相关的子目录以对应代码的包结构。
有关详细信息,请参阅javac documentation。
在这种情况下,您需要发出一个javac
命令来编译公式,而另一个用于编译问题 - 在编译时可能使用公式bin
目录作为类路径的一部分问题。
(您可能需要考虑使用单个源结构但不同的软件包。请注意,您还应该考虑使用IDE来隐藏一些这种复杂性 - 它最终会让人厌烦这一切,甚至虽然它实际上不是 hard 。)