java - 将源文件编译到不同的目录?

标签 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 命令中将类文件编译到另一个文件夹来简化这个过程?

最佳答案

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

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

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

参见 javac documentation了解更多详情。

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

(请注意,您可能想考虑使用单一源代码结构但使用不同的包。您还应该考虑使用 IDE 来向您隐藏一些这种复杂性 - 最终手工完成所有这些工作会变得很烦人,即使虽然它实际上并不。)

关于java - 将源文件编译到不同的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18431857/

相关文章:

python - 从文件路径中删除 ../或 ./

java - 在二维数组中搜索关键字

java - 处理Solr读写超时异常

java - 如何从 eclipse 添加到 svn 所有 *.class 文件

svn - AnkhSVN 和/或 TortoiseSVN - 更改目录结构的推荐方法是什么?

linux - 按文件名中的标签排序文件

Java Persistence 与 self 的多对多关系

Java:当线程池中的所有线程都完成时通知主类/不同线程中的相同对象实例

powershell - 扁平化目录结构

rust - 将 Cargo 与我的项目自己的目录结构一起使用