はじめに
第4回「Eclipse 3.4でのアプリケーション開発方法(swing/JSP/サーブレット)」までで、Eclipseのインストールと設定からEclipseを用いてアプリケーションを開発するまでの一般的な流れなどを説明しました。
今回は、複雑なアプリケーションを開発するために必要な「デバッグやテストを支援する機能」の基本を紹介します。
事前準備
第4回のJSP開発の章で紹介した「Tomcat Launcherプラグイン」を用いるので、あらかじめ導入しておいてください。また「JStyle」も導入しておくと便利でしょう。今回の画面画像は「JStyle」導入済みの場合になっています。
今までの記事
- 第1回「Eclipse 3.4のインストールと日本語化」
- 第2回「Eclipse 3.4の各種設定と利用方法」
- 第3回「Eclipse 3.4プラグインのインストール/設定方法」
- 第4回「Eclipse 3.4でのアプリケーション開発方法(swing/JSP/サーブレット)」
Javaアプリケーションのデバッグ(1)
まず、Eclipseの基本機能を用いて、Javaアプリケーションのデバッグを効率化する方法を説明します。今回利用している「Eclipse IDE for Java Developers」には、次のようなデバッグ支援機能が含まれています。
- ブレークポイントの設定
- 変数の値の参照
- ステップイン
- ステップリターン
- ステップオーバー など
では、簡単なJavaアプリケーションを例にとって、これらの機能を利用してみましょう。第2回で作成した「hello」プロジェクトの中のhellopacパッケージを用います。この回から試す方は、第2回「Eclipse 3.4の各種設定と利用方法 Page2」とPage3を参照の上、Javaプロジェクト「hello」とパッケージ「hellopac」を作成してください。中身は空で構いません。
そこに、下記のとおり、整数の配列を受け取って、その総和を返すsumArray(int[])というメソッドを持つHelloFuncクラスと、このメソッドの動作を試すHelloDebugクラスを作成します。
// HelloFuncクラス(HelloFunc.java)
package hellopac;
public class HelloFunc {
// 整数の配列を受け取って、その総和を返す
int sumArray(int[] p){
for(int i = 1; i < p.length; i++){
p[0] += p[i]; // 各要素の値を足しこむ
}
return p[0]; // 総和を返す
}
}
// HelloDebugクラス(HelloDebug.java)
package hellopac;
public class HelloDebug {
public static void main(String[] args) {
int[] i = {1, 2, 3}; // テスト用の配列
int ans; // 総和を受け取る変数
// 総和を求める関数を呼ぶ
ans = new HelloFunc().sumArray(i);
// 1+2+3=6が表示される
System.out.println("1+2+3=" + ans);
// 1+2+4を試すため3を4に変更
i[2] = 4;
// 総和を求める関数を呼ぶ
ans = new HelloFunc().sumArray(i);
// 1+2+4=7が表示されるはずが…
System.out.println("1+2+4=" + ans);
}
}
この2つのクラスを作成して実行すると、図1のように2行目に「1+2+4=7」ではなく「1+2+4=12」が表示されてしまいます。

では、デバッグ機能を用いて、この原因を明らかにしましょう。
