はじめに
第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
」が表示されてしまいます。
では、デバッグ機能を用いて、この原因を明らかにしましょう。