javac如何使用通配符编译整个源目录?

时间:2011-12-12 17:36:49

标签: java javac

  

可能重复:
  Java: How can I compile an entire directory structure of code?

在javac命令行中,如何使用通配符编译整个源目录?

javac src\com\mq\Main.java

更改为

javac src\*

我们可以这样做吗?

由于

6 个答案:

答案 0 :(得分:3)

只需使用通配符:

javac src\com\mq\*.java

答案 1 :(得分:3)

您可以使用@args技术,如javac documentation中的定义。它是一个包含要编译的类的路径的文件。

如果你使用linux / unix系统,很容易创建这样一个文件:

find . -iname *.java > files.txt
javac @files.txt

它以递归方式工作,只需在源目录的根目录下启动它。

答案 2 :(得分:1)

你考虑过使用Ant吗?它使这种事情变得更加简单。请参阅:http://ant.apache.org/manual/Tasks/javac.html#srcdirnote

您只需将其指向源树的顶层,然后您可以有选择地排除您不想编译的任何内容。如果需要,您也可以变得更复杂,但这可以解决最常见的需求。

答案 3 :(得分:0)

简答:没有

更长的回答:也许是 javac命令将编译您在命令行上列出的所有文件。如果使用通配符,您可以在javac命令行上创建src树中所有文件的列表,它将编译所有文件。

在UNIX上,您可以执行以下操作:

find src -type f -name "*.java" -print | xargs javac

这个问题是重复的问题的答案之一(来自Chip McCormick评论的Java: How can I compile an entire directory structure of code ?)演示了使用-exec参数的查找。对于大量的.java文件,技术更好。对于少量.java文件,我相信我展示的文件实际上与使用-exec参数的技术相同。

答案 4 :(得分:0)

执行此操作的“正确方法”将使用像Ant或Maven或IDE这样的构建工具,它会自动为您执行此操作。

例如,在Ant中,您将在编译目标中使用此任务:

<javac srcdir="src"
       encoding="UTF-8"
       destdir="classes">
</javac>

答案 5 :(得分:-1)

使用cd命令转到包含源文件的目录。然后发出命令
javac * .java