编译所有子文件夹中的 java 文件?
如何使用javac编译Unix上所有子文件夹中的所有java文件?
在视窗上...
创建批处理文件:
for /r %%a in (.) do (javac %%a\*.java)
...然后在顶级源文件夹中执行它。
在 Linux 上...
javac $(find ./rootdir/* | grep .java)
两个答案都取自此线程...
http://forums.oracle.com/forums/thread.jspa?threadID=1518437&tstart=15
但正如其他人所建议的那样,构建工具可能会证明是有帮助的。
使用构建工具,如 Ant 或 Maven。两者都允许您以比使用UNIX工具更好的方式管理依赖关系。And 和 Maven 还允许您定义除编译之外要执行的自定义任务。此外,Maven 还提供了用于管理远程存储库中的外部依赖项的约定,以及用于运行单元测试和支持持续集成的功能的约定。find
即使您只需要偶尔编译一次源文件,您也可能会发现设置一个简单的 Ant 文件最终可以节省大量时间。build.xml
最后,大多数流行的 IDE 和代码编辑器应用程序都与 Ant 构建脚本进行了某种集成,因此您可以从编辑器中运行所有 Ant 任务。NetBeans,Eclipse,IDEA等也内置了对Maven的支持。
如果您不熟悉 Ant,请先阅读本文。以下是链接中的示例构建文件:
<project name="MyProject" default="dist" basedir=".">
<description>
simple example build file
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
一旦你熟悉了蚂蚁,你就会发现迁移到Maven会更容易。