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

2022-09-01 20:31:36

有没有办法将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...

我想将源文件和类文件分开以保持文件夹井井有条,但我目前必须在每次编译后将所有类文件从文件夹复制到文件夹中。srcbin

有没有办法通过将类文件编译到命令中的另一个文件夹来简化此过程?javac


答案 1

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

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

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

有关更多详细信息,请参阅 javac 文档

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

(请注意,您可能要考虑使用单个源结构但使用不同的包。您还应该考虑使用IDE来隐藏一些复杂性 - 它最终会变得令人厌烦,即使手动完成所有这些操作实际上并不


答案 2

推荐