【Eclipse】コンパイル実行とクラスファイル配置先

Eclipse

Javaのコンパイルとクラスファイル

このページでは、Eclipse開発環境におけるコンパイルの実行とクラスファイルの場所について整理しています。特に、javacコマンドによるコンパイルと、javaコマンドによる実行が、Eclipse上での操作とどのように対応しているかに重点を置いています。そのため前提として、コマンドによるコンパイルとJavaの実行の基本が分かっていると、より理解がスムーズになります。

前提となる javac / java コマンドによる操作についての手順はこちらに記載しています。

Eclipseにおけるコンパイルの実行とクラスファイルの場所

EclipseのJava開発環境では、ソースファイルの保存の度にコンパイルが実行され、binディレクトリ配下にクラスファイルが作られます。

  • コンパイルの実行方法:ソースファイルを保存( Ctrl + S )するとコンパイルされる。
  • クラスファイルの場所:プロジェクト直下のbinディレクトリに保存される。

例えばコンパイルエラーとなるコードを書いた時、保存( Ctrl + S )を行ったタイミングで赤いエラー表示が出るのもこのためです。

実行可能な形式であるクラスファイルは、人間には読むことの出来ないバイナリファイルです。そのため、bin というディレクトリに分けて作成されます。

The file produced by a compiler is often called a binary file or an executable file. Whereas you can read a source code and understand it, binary or executable files are not meant to be read by a human person. Only your computer can make sense of it.
コンパイラによって生成されるファイルは、バイナリファイルまたは実行ファイルと呼ばれることがよくあります。ソースコードは読んで理解できますが、バイナリファイルや実行ファイルは人間が読むことを想定したものではありません。理解できるのはコンピュータだけです。

Getting Started with Java > Compiling and Executing Java Code

EclipseにおけるJavaの実行

従って、Javaの実行( Ctrl + F11 )の際は、ソースファイル保存時にbinディレクトリに作成されたクラスファイルが実行されることになります。

  • Eclipse > 保存:javacコマンドによりbin下にクラスファイルが作られる。
  • Eclipse > 実行:javaコマンドによりbin下に作られたクラスファイルが実行される。

Javaプロジェクト・Springプロジェクトの例

実際に確認してみると次のようになっています。Eclipseのパッケージエクスプローラにbinディレクトリは表示されないため、一度srcの場所をエクスプローラで開き( Eclipseからエクスプローラの同じ場所を開く方法 )、同じ階層のbinディレクトリ下を確認する必要があります。

Eclipseでソースファイルを保存( Ctrl + S )する度に、binディレクトリ下のクラスファイルが更新されることを確認できます。

ただし、異なる場所にクラスファイルが作られることもあるため、binディレクトリが見つからない場合は、Eclipseの設定を確認する必要があります。例えば、Springプロジェクトの場合、srcと同じ階層には、binではなくtargetが存在しており、その下のclassessrcと同じディレクトリ構成になっています。これは、Mavenの標準ディレクトリレイアウトに従って構成されているためです。→ Introduction to the Standard Directory Layout