我还建议使用某种构建工具(Ant或Maven,已经建议使用Ant,而且更容易开始使用)或处理编译的IDE(Eclipse使用带有协调策略的增量编译,您甚至不必按任何"Compile"个按钮).
使用Javac
如果你需要为一个更大的项目try 一些东西,但附近没有任何合适的构建工具,你可以使用javac
提供的一个小技巧:可以在文件中指定要编译的类名.只需将文件名以@
前缀传递给javac
即可.
如果可以创建项目中所有*.java
个文件的列表,那么很容易:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- 这是一个快速简单的解决方案.
- The drawback是指每次创建新源文件或重命名现有文件时,都必须重新生成
sources.txt
个文件,这是一项容易忘记(因此容易出错)且烦人的任务.
使用构建工具
从长远来看,最好使用为构建软件而设计的工具.
使用蚂蚁
如果您创建一个简单的build.xml
文件来描述如何构建软件:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
您可以通过运行以下命令来编译整个软件:
$ ant
- The advantage表示您正在使用易于扩展的标准构建工具.
- The drawback是指你必须下载、设置和学习一个额外的工具.请注意,大多数IDE(如NetBeans和Eclipse)都提供了编写构建文件的强大支持,因此在这种情况下,您无需下载任何内容.
使用Maven
Maven的设置和使用并不是那么微不足道,但学习它会带来很好的回报.这里有一个关于start a project within 5 minutes个人的很棒的教程.
- It's main advantage(对我来说)是因为它也处理依赖关系,所以你不需要下载更多的Jar文件并手动管理它们,我发现它对于构建、打包和测试更大的项目更有用.
- The drawback是它有一个陡峭的学习曲线,如果Maven插件喜欢 suppress 错误:-)另一件事是相当多的工具也使用Maven存储库(比如Scala为Sbt,Ant为Ivy,Groovy为Graddle).
使用IDE
现在,什么可以提高你的开发效率.有一些开源的替代方案(比如Eclipse和NetBeans,我更喜欢前者),甚至还有一些商业的(比如IntelliJ),它们都非常流行和强大.
他们可以在后台管理项目构建,这样您就不必处理所有命令行内容.然而,如果你知道背景中的actually happens是什么,那么它总是很有用的,这样你就可以找出偶尔出现的错误,比如ClassNotFoundException
.
还有一个注意事项
对于较大的项目,总是建议使用IDE and作为构建工具.前者提高了您的工作效率,而后者使得在项目中使用不同的IDE成为可能(例如,Maven可以用一个简单的mvn eclipse:eclipse
命令生成Eclipse项目描述符).此外,例如,拥有一个可以用单行命令测试/构建的项目很容易介绍给新同事,并引入到持续集成服务器中.小菜一碟:-)