【问题标题】:Compiling Java files in sub-directories [duplicate]在子目录中编译Java文件[重复]
【发布时间】:2013-09-08 16:33:27
【问题描述】:

我希望能够编译我正在工作的所有子目录中的所有 java 文件。

我知道如何编译同一目录中的所有 java 文件,但是如何编译所有子目录(以及这些子目录等)?

【问题讨论】:

  • 您使用的是哪个 IDE 或构建工具?我不建议您使用命令行,除非您喜欢以最困难的方式做事。 (在这种情况下,你并不孤单)
  • 我正在使用命令行。
  • 我使用 maven 和 IntelliJ。当我想运行一个程序时,我不需要考虑哪些文件/目录需要重新编译,我只需按Run运行或Debug调试。
  • 我不会编写单独的解决方案,而是为您提供另一个 stackoverflow 帖子的链接,该帖子很好地回答了这个问题。 stackoverflow.com/questions/6623161/…

标签: java compilation


【解决方案1】:

有多种方法可以做到这一点。

使用 Javac

您必须事先知道所有目录,或者能够使用通配符。 命令是这样的:

javac dir1/*.java dir2/*.java dir3/dir4/*.java dir3/dir5/*.java dir6/*src/*.java

(或)

如果您可以创建项目中所有 *.java 文件的列表,那就很简单了:

Linux

$ find -name "*.java" > sources.txt
$ javac @sources.txt

窗户

> dir /s /B *.java > sources.txt
> javac @sources.txt

使用构建工具

使用专为构建软件而设计的工具总是更好。

使用蚂蚁

如果您创建一个描述如何构建软件的简单 build.xml 文件:

<project default="compile">
    <target name="compile">
        <mkdir dir="bin"/>
        <javac srcdir="src" destdir="bin"/>
    </target>
</project>

您可以通过运行以下命令来编译整个软件:

$蚂蚁

既然您知道所有方法(至少,大多数方法),那么选择权在您手中! :-)

【讨论】:

  • 谢谢!那么javac */.java 会起作用吗?不过,这只适用于一个目录级别。
  • 用更多信息编辑了答案。如果答案有帮助,请点赞,并“接受为答案”。它可以帮助像我这样的新手@stackoverflow :-)
  • 对于多个目录,我建议你使用 ant 脚本。但是,如果您想让事情变得简单,您可以使用“find”或“dir”选项(我在回答中提到了这些)。这适用于所有子目录!
  • 谢谢。尽管我正在尝试使用 system() 调用从 C++ 文件中运行这一切。不过感谢您的帮助。
【解决方案2】:

尝试使用ant脚本,将源文件的基本目录提供给srcdir

<target name="compile">
    <javac srcdir="src" destdir="build/classes"/>
</target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2017-02-07
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多