构建Java包(javac到所有文件)

Vyt*_*tas 13 java javac

如何将目录中的所有文件编译为*.class文件?

Jon*_*eet 24

嗯,这看起来很明显,所以我可能会遗漏一些东西

javac *.java
Run Code Online (Sandbox Code Playgroud)

(有适当的图书馆参考等)

也许:

javac -d bin *.java
Run Code Online (Sandbox Code Playgroud)

到javac为输出创建正确的目录结构.

你在寻找更复杂的东西吗?如果是这样,你能提供更多细节(以及你所在的平台)吗?

  • *所以我可能会遗漏一些东西*:是的,在编译时不应该在包目录中,因为那时在命令行上没有明确命名的类(即在其他包中这些并且不包含在编译器的引导程序中)路径).`javac super/package/dir/*.java`是正确的方法(可能添加`-d`,`-cp`和/或`-sourcepath`). (4认同)

Kip*_*ros 9

在此处描述了在UNIX上使用"find"的另一种方法:

http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-javac.html

以下两个命令将编译目录./src及其子目录中包含的所有.java文件:

find ./src -name *.java > sources_list.txt
javac -classpath "${CLASSPATH}" @sources_list.txt
Run Code Online (Sandbox Code Playgroud)

首先,find生成sources_list.txt一个包含Java源文件路径的文件.接下来,javac使用语法编译所有这些源@sources_list.txt.

  • 好的解决方案 您可以使用/ dev/stdin跳过临时文件.即.`find ./src -name*.java | javac -classpath"$ {CLASSPATH}"@/dev/stdin` (2认同)