Javaのコンパイルとクラスファイル
このページでは、Eclipse開発環境におけるコンパイルの実行とクラスファイルの場所について整理しています。特に、javac
コマンドによるコンパイルと、java
コマンドによる実行が、Eclipse上での操作とどのように対応しているかに重点を置いています。そのため前提として、コマンドによるコンパイルとJavaの実行の基本が分かっていると、より理解がスムーズになります。
javac
/ java
コマンドによる操作についての手順はこちらに記載しています。Eclipseにおけるコンパイルの実行とクラスファイルの場所
EclipseのJava開発環境では、ソースファイルの保存の度にコンパイルが実行され、bin
ディレクトリ配下にクラスファイルが作られます。
- コンパイルの実行方法:ソースファイルを保存( Ctrl + S )するとコンパイルされる。
- クラスファイルの場所:プロジェクト直下の
bin
ディレクトリに保存される。

実行可能な形式であるクラスファイルは、人間には読むことの出来ないバイナリファイルです。そのため、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
ディレクトリ下を確認する必要があります。

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

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