また、ある種のビルドツール(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
、新しいソースを作成するたびにファイルを再生成する必要があるか、既存の1つのファイルの名前を変更する必要があることです。
ビルドツールの使用
長期的には、ソフトウェアを構築するために設計されたツールを使用する方が良いでしょう。
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のリポジトリで動作していることであればSbtの Scalaのため、アイビーのAntのため、Graddle Groovyのため) 。
IDEの使用
これで、開発の生産性が向上する可能性があります。いくつかのオープンソースの代替手段(EclipseやNetBeansなど、前者を好む)と、非常に人気があり強力な市販のもの(IntelliJなど)さえあります。
プロジェクトのビルドをバックグラウンドで管理できるので、すべてのコマンドラインの要素を扱う必要はありません。ただし、バックグラウンドで実際に何が起こっているかを知っていると、のような偶発的なエラーを見つけ出すのに役立ちますClassNotFoundException
。
1つの追加のメモ
大規模なプロジェクトでは、常にIDE とビルドツールを使用することをお勧めします。前者は生産性を向上させ、後者はプロジェクトでさまざまなIDEを使用できるようにします(たとえば、Mavenは簡単なmvn eclipse:eclipse
コマンドでEclipseプロジェクト記述子を生成できます)。さらに、1行のコマンドでテスト/ビルドできるプロジェクトがあると、新しい同僚や継続的統合サーバーなどに簡単に導入できます。ケーキ:-)