外部ライブラリの情報
Eclipseで外部ライブラリに含まれるクラスを参照して開発を行う場合、クラスパスの設定を行う必要があります。
ただし、この手動で行うクラスパスの設定は、あくまで外部ライブラリ(フォルダ・ZIP・JAR)に含まれるクラスファイルを参照し、最低限プログラムの実行に必要な設定を行うためのものです。追加でソースファイルやJavadocの設定を行うことで、より開発に役立つ情報を得られるようになります。
例えば
では、クラスパスの設定だけを行った場合、次のようにソースコードやJavadocを確認することができません。そこで、このような場合にソースコードやJavadocを確認できるよう、
と について、ここからはそれぞれの設定手順を見ていきます。ソースファイルの関連付け
ここからソースファイルの関連付けを行っていきますが、ここで注意が必要なのは、対象のクラスファイルを逆コンパイルしているわけではないという点です。これはあくまで、別の場所に配置されたソースファイルと関連付けることにより、参照されたクラスファイルをあたかもソースファイルであるかのように閲覧できるようにする機能に過ぎません。
そのため、まずは関連付けるためのソースファイルが必要になります。例えば commons-lang3-3.18.0-sources.jar
というJARが含まれています。 と同様、ソースファイルの関連付けの場合も、フォルダ・ZIP・JARの中から選択できるため、この sources.jar
を使用します。
具体的な設定手順は次の通りです。
この手順では、クラスパス設定での
のように、関連付けたいソースファイルのフォルダ・ZIP・JARが同じワークスペース内に配置されている場合を例に挙げました。ソースファイルの関連付けも、 と同様、ワークスペース外(PC内の任意の場所)を選択することが可能です。その場合は、External location を選択することでフォルダ選択画面が表示されます。また、関連付けが完了していない状態で開かれた Class File Editor の[Attach Source..]ボタン押下によっても、同様のウィンドウが開かれ、設定を行うことが可能です。

また
の通り、この機能は単なる関連付けであり、クラスファイルを逆コンパイルしているわけではないため、関連付けられたソースファイルの内容とクラスファイルのプログラムが同じであることは保証されません。例えば次のように、一度コンパイルしたクラスファイルにパスを通し、別の場所に配置されたソースファイルを関連付けていたとします。この時、関連付けているソースファイルの変更がクラスファイルに取り込まれるようなことは決してありません。そのため例えば、ソースファイルを変更した一方でパスを通した先のクラスファイルが更新されないままだと、実際に実行されているプログラムと関連付けにより見えているソースファイルの内容が異なり、混乱の原因となり得ます。
ちなみにこの例では暫定的な回避策として、最新のクラスファイルが常に library
プロジェクトのbin
ディレクトリへ直接クラスパスを通すことで、関連付けられたソースファイルと同期を取ることが可能です。

commons-lang3-3.18.0-src.zip
を解凍すると、同じようにソースファイルを確認することができます。
commons-lang3-3.18.0-src.zip
には、例えば pom.xml
のようなビルドに必要なファイルなど、Apache Commons Lang 自体をプロジェクトとしてワークスペースに配置し、開発を行う際に必要となる物が全て含まれています。
一方 commons-lang3-3.18.0-bin.zip
に含まれる commons-lang3-3.18.0-sources.jar
は、クラスファイルに対応する最低限のソースファイルのみがJARファイルとしてまとめられており、解凍せず主にソースの関連付け等に使用されることが想定されています。
Javadocの関連付け
Javadocの関連付けについても、ソースファイルの手順のほとんど同じです。Apache Commons Lang の例では、commons-lang3-3.18.0-bin.zip
に commons-lang3-3.18.0-javadoc.jar
が含まれているため、このJARファイルを対象に設定を行います。設定対象として、ワークスペース内または任意の外部フォルダおよびアーカイブファイル(ZIP・JAR)を選択できる点も同様です。
具体的な設定手順は次の通りです。
Apache Commons Lang の commons-lang3-3.18.0-bin.zip
を解凍すると、commons-lang3-3.18.0-javadoc.jar
とは別に、apidocs
というディレクトリも含まれていることが分かります。中身は javadoc.jar
と同一で、Javadocに関連するHTMLファイル一式が含まれています。 の通りJavadoc設定にはJARだけでなくフォルダも選択可能なため、こちらを指定することも可能です。
IDE設定用のアーカイブファイルとは別に、ブラウザで閲覧可能な形式として展開済みのディレクトリが同梱されているという見方が出来ます。
Mavenプロジェクトの場合
ここまでのようにソースファイルやJavadocの関連付け設定が必要なのは、あくまで pom.xml
に依存関係を追加しておけば、クラスパス設定と併せてソースファイルの関連付けまでが行われます。

これはローカルリポジトリ( /.m2/repository
)を見ると分かりますが、ライブラリ本体の commons-lang3-3.17.0.jar
とは別に commons-lang3-3.17.0-sources.jar
も含まれており、これが自動で追加されるためです。そのため手動での関連付け設定は不要となります。
