2011-12-12 70 views

回答

1

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

您只需将它指向源代码树的顶层,然后您可以选择性地排除任何您不想编译的东西。如果需要,你也可以变得更加复杂,但是它可以处理最常见的需求。

2

只需使用通配符:

javac src\com\mq\*.java 
+0

这不会直接适用于多个软件包。 –

-1

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

+1

如果使用多个软件包,这不是一个好主意。 –

+0

那么我该如何编译这种情况? – JohnC

+0

看看其他答案之一,其中大多数工作。 –

0

简短的回答:没有

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

在UNIX中,你可以做这样的事情:

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

一个答案,其中的这个问题是一个重复(Java: How can I compile an entire directory structure of code ?从芯片麦考密克评论)的问题表明,使用-exec一个查找参数。对于大量的.java文件,这种技术更好。对于少量的.java文件,我相信我所展示的与使用-exec参数的技术实际上是一样的。

0

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

例如,在Ant中,你会在你的编译目标使用此任务:

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

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

如果使用在Linux/Unix系统中,可以很容易地创建一个这样的文件:

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

它的工作原理递归,只需启动它在你的源目录的根目录。