我建议使用某种构建工具(Ant或Maven,Ant已经被建议并且更容易上手),或者使用处理编译的IDE(Eclipse使用增量编译和协调策略,甚至您无需按任何“编译”按钮)。
使用Javac
如果您需要为一个较大的项目尝试一些东西而附近没有适当的构建工具,您可以始终使用javac
提供的小技巧:要编译的类名可以在文件中指定。 您只需要将文件名使用@
前缀传递给javac
即可。
如果您可以创建项目中所有*.java
文件的列表,那就很容易了:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- 优点是它是一个快速且简单的解决方案。
- 缺点是每次创建新源或重命名现有文件时都必须重新生成
sources.txt
文件,这是一个容易忘记的(因此容易出错)而繁琐的任务。
使用构建工具
从长远来看,最好使用专为构建软件而设计的工具。
使用Ant
如果您创建一个简单的 build.xml
文件来描述如何构建软件:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
通过运行以下命令,您可以编译整个软件:
$ ant
- 优点是您使用了一个易于扩展的标准构建工具。
- 缺点是您需要下载、设置和学习另一个工具。请注意,大多数IDE(如NetBeans和Eclipse)都为编写构建文件提供了很好的支持,因此在这种情况下您无需下载任何东西。
使用Maven
Maven的设置和使用并不那么简单,但是学习它非常值得。以下是一个可以让您在5分钟内启动项目的教程。
- 它的主要优势(对我来说)是它也处理依赖项,因此您不需要手动下载更多的Jar文件并管理它们,我发现它对于构建、打包和测试较大的项目更有用。
- 缺点是它有一个陡峭的学习曲线,而且如果Maven插件想要抑制错误:-)另一件事是相当多的工具也与Maven存储库一起运作(如Scala的Sbt,Ant的Ivy,Groovy的Graddle)。
使用IDE
现在这可以提高您的开发生产力。有一些开源的替代方案(如Eclipse和NetBeans,我更喜欢前者),甚至商业的替代方案(如IntelliJ)非常流行且功能强大。
它们可以在后台管理项目构建,因此您无需处理所有命令行操作。然而,如果您知道背景中的实际情况,那么在遇到偶尔的错误(如ClassNotFoundException)时很有帮助。
额外的注意事项
对于较大的项目,始终建议同时使用IDE和构建工具。前者可以提高您的生产力,而后者使得可以在项目中使用不同的IDE(例如,Maven可以通过简单的mvn eclipse:eclipse
命令生成Eclipse项目描述符)。此外,具有可以通过单行命令测试/构建的项目易于向新的同事介绍,并引入到连续集成服务器中。小菜一碟 :-)