【发布时间】:2010-03-01 14:30:10
【问题描述】:
如何将目录下的所有文件编译成*.class文件?
【问题讨论】:
-
1) 见 makefile (或 ant 或 maven 或 ....) 2) 否
如何将目录下的所有文件编译成*.class文件?
【问题讨论】:
嗯,这似乎很明显,所以我可能遗漏了一些东西
javac *.java
(使用适当的库引用等)
或许:
javac -d bin *.java
为 javac 创建正确的输出目录结构。
您是否在寻找更复杂的东西?如果是这样,您能否提供更多详细信息(以及您所在的平台)?
【讨论】:
javac super/package/dir/*.java 是正确的做法(可能添加 -d、-cp 和/或 -sourcepath)。
javac: file not found: *.java”。
.java 文件。没有源文件就很难编译源代码...
这里描述了在 UNIX 上使用“查找”的另一种方式:
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
首先,find 生成 sources_list.txt,这是一个包含 Java 源文件路径的文件。接下来,javac 使用语法@sources_list.txt 编译所有这些源代码。
【讨论】:
find ./src -name *.java | javac -classpath "${CLASSPATH}" @/dev/stdin
这是我用来构建整个项目的代码片段,其中,与往常一样,源文件位于深度嵌套的层次结构中,并且有许多 .jar 文件必须进入类路径(需要 UNIX 实用程序):
CLASSPATH=
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done
SRC=$(find | grep java$)
javac -cp "$CLASSPATH" $SRC
【讨论】: