将源文件编译到其他目录?

时间:2013-08-25 17:45:10

标签: java directory-structure

有没有办法将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命令中的另一个文件夹来简化此过程?

1 个答案:

答案 0 :(得分:28)

是的,绝对 - 使用-d选项指定输出目录:

javac -d bin src/foo/bar/*.java

请注意,您指定的目录是输出结构的 root ;将自动创建相关的子目录以对应代码的包结构。

有关详细信息,请参阅javac documentation

在这种情况下,您需要发出一个javac命令来编译公式,而另一个用于编译问题 - 在编译时可能使用公式bin目录作为类路径的一部分问题。

(您可能需要考虑使用单个源结构但不同的软件包。请注意,您还应该考虑使用IDE来隐藏一些这种复杂性 - 它最终会让人厌烦这一切,甚至虽然它实际上不是 hard 。)