web-dev-qa-db-ja.com

ソースファイルを別のディレクトリにコンパイルしますか?

Javaソースファイル(*.Java)を別のディレクトリにコンパイルする方法はありますか?

私のパッケージファイル構造が次のようである場合:

Mathematics ->
  Formulas ->
    src ->
      // source files containing mathematical formulas...
    bin ->
      // class files containing mathematical formulas...
  Problems ->
    src ->
      // source files containing mathematical problems...
    bin ->
      // class files containing mathematical problems...

フォルダーを整理しておくためにソースファイルとクラスファイルを分離したいのですが、現在はすべてのクラスファイルをコンパイルするたびにsrcフォルダーからbinフォルダーにコピーする必要があります。

javacコマンドでクラスファイルを別のフォルダーにコンパイルすることにより、このプロセスを簡略化する方法はありますか?

21
Jonathan Lam

うん、絶対に--dオプションで出力ディレクトリを指定します。

javac -d bin src/foo/bar/*.Java

指定するディレクトリは、出力構造のrootであることに注意してください。コードのパッケージ構造に対応する関連サブディレクトリが自動的に作成されます。

詳細は javacドキュメント を参照してください。

この場合、1つのjavacコマンドを発行して式をコンパイルし、別のコマンドを発行して問題をコンパイルする必要があります-問題をコンパイルするときにクラスパスの一部として式binディレクトリを使用する可能性があります。

(単一のソース構造を使用することを検討する必要があるかもしれませんが、パッケージが異なることに注意してください。IDEを使用して、この複雑さの一部を非表示にすることを検討する必要があります。実際にはhard

35
Jon Skeet