PE-BANK関西支店の 2017-04-15 Java勉強会で使用する資料です。
超初心者向けの内容となっております。
Pleiades All in One Eclipseのインストール
pleiades (プレアデス)は MergeDoc Project で配布されている Eclipse 日本語化プラグインです。
Pleiades All in One Eclipse は日本語化プラグイン(と、いくつかのよく使用されるプラグイン)を組み込み済みの Eclipse本体になります。
以下からご使用の環境に合わせた Java Full Edition をダウンロードしてください。
http://mergedoc.osdn.jp/pleiades_distros4.6.html
Java Full Edition は Eclipse本体に加え、JRE, JDKを含んでいます。
そのため、PATH指定などの設定が不要になります。
Windowsの場合
ダウンロードフォルダなどでそのままzipファイルを展開するとパスの長さが Windows の許容範囲を超えてしまい、エラーとなる場合があります。
以下の手順が確実です。
-
C:¥app
などのフォルダを作成 - ダウンロードしたzipファイルを移動
- ファイル名を
pleiades-4.6.3.zip
に変更 - ZIPファイルを展開
- 展開したフォルダ内の
pleiades
をC:¥app
に移動
C:¥App¥pleiades¥eclipse¥eclipse.exe
へのショートカットをデスクトップに作成しておくと便利でしょう。
Macの場合
以下のページを参考にインストールを行ってください。
Mac 版 Eclipse Pleiades All in One リリース
初回起動時は右クリック -> 開く
を選択してください。
セキュリティの警告ダイアログが表示されますので、開く
をクリックします。
Eclipse用語について
最低限押さえておきたい用語について、以下のページがよくまとまっていますので参考にしてください。
Eclipse用語「ワークベンチ」「パースペクティブ」「エディター」「ビュー」「ワークスペース」について
Eclipseの起動
ワークスペースの指定
Eclipseを起動すると、「ワークスペース」をどこに保存するかを尋ねられます。
- Windowsの方は、とりあえずデフォルトで構いません。
- Macの方はデフォルト (
../workspace
) だと Applications の中に作る気がするので、適当な箇所 (/Users/{ユーザー名}/workspace
) に変更してください。(すみません、未検証です。)
「次回から表示しない」というチェックボックスがありますが、Eclipseに慣れるまでは表示しておいた方がよいと思います。
初期設定
Eclipseが起動したら、先程の「Eclipse用語」と実際の画面を見比べてください。
画面が狭い人は「アウトライン・ビュー」と「問題ビュー」はとりあえず使用しませんので最小化してしまいましょう。
今回の勉強会では Windows を使用されている方と Mac を使用されている方が混在していますので、今後サンプルコードを取り込んだ際に問題が起きないように、文字コードを UTF-8
に統一したいと思います。
-
ウィンドウ
->設定
をクリック -
一般
->ワークスペース
をクリック -
テキスト・ファイルのエンコード
がその他: UTF-8
となっていることを確認します。
Pleiades All in One Eclipse のデフォルトでは その他: UTF-8
となっているはずです。
eclipse本体のみをダウンロードした場合は デフォルト
(Windowsだと MS932) となっています。
Eclipseを使用した簡単なプログラムの作成
作成するプログラムの仕様
今回は引数から数字を受け取り、その値を2乗した結果を出力するプログラムを作成します。
プロジェクトの作成
まずはプロジェクトを作成しましょう。
「パッケージ・エクスプローラー」を右クリックし、新規
-> Javaプロジェクト
を選択します。
プロジェクト名は何でも構いません。
とりあえず JavaStudy001
としておきましょう。
その他の項目はデフォルトのまま、「次へ」をクリックします。
Javaのビルド設定画面が表示されますが、今回はデフォルトのまま「完了」をクリックしてください。
起動時に指定した workspace に JavaStudy001
フォルダが生成され、
eclipseが使用する各種設定ファイルと共に
ソースコードを格納する src
フォルダ、
生成したクラスファイルを格納する bin
フォルダが生成されます。
クラスの作成
以下のようなパッケージとクラスの構成になるように、クラスを作成していきます。
- パッケージ名: myPackage.calc
- Calculationクラス
- Squareクラス
- パッケージ名: myPackage.main
- Programクラス
Calculationクラスの作成
- 「パッケージ・エクスプローラー」で
src
フォルダを右クリックし、新規
->クラス
を選択します。 -
パッケージ
をmyPackage.calc
とします。 -
名前
をCalculation
とします。
package myPackage.calc;
public class Calculation {
}
Squareクラスの作成
- 「パッケージ・エクスプローラー」で
myPackage.calc
を右クリックし、新規
->クラス
を選択します。 -
名前
をSquare
とします。 -
スーパークラス
の参照(E)...
をクリックします。 - 「スーパークラスの選択」で「calc」と入力すると、「一致する項目」に先程作成した
Calculation
クラスが表示されますので、それを選択してOK
をクリックします。
package myPackage.calc;
public class Square extends Calculation {
}
Programクラスの作成
- 「パッケージ・エクスプローラー」で
src
フォルダを右クリックし、新規
->クラス
を選択します。 -
パッケージ
をmyPackage.main
とします。 -
名前
をProgram
とします。 -
public static void main(String[] args)(V)
にチェックを入れ、完了
をクリックします。
package myPackage.main;
public class Program {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
}
}
TODOコメントが入っており、TODO
の箇所が強調されていると思います。
コードに TODOコメント を記載しておくと、「タスク・ビュー」に一覧表示されます。
「タスク・ビュー」から該当コメントの箇所にジャンプする機能があるので、後で実装しなければならない箇所や他の開発者に実装を依頼する場合などは、TODOコメントを残しておきましょう。
「タスク・ビュー」は ウィンドウ
-> ビューの表示
-> タスク
をクリックすると表示されます。
Calculationクラスの実装
値を保持する value
フィールドを定義しましょう。
package myPackage.calc;
public class Calculation {
protected int value = 0;
}
続いて、value
を右クリックし ソース
-> getter および setter の生成
をクリックします。
「getter および setter の生成」ダイアログで、デフォルトのまま OK
をクリックします。
getValue()
, setValue(int value)
メソッドが生成されることを確認してください。
つづけて、計算結果を保持する result
フィールドを作成します。
value
フィールドの直下に protected int result = 0;
と定義を追加しましょう。
さらに計算結果を出力する output
メソッドを作成します。
これは外部のクラスからも呼べるように public
として作りましょう。
Eclipseにはコードを補完する機能があります。
public void output() {
System.
}
↑この状態でしばらく待つと、候補となる項目が表示されます。
out
を選択し、さらに .
を入力しましょう。
out
クラスのメンバが表示されますので、println
を選択します。
最後に println
メソッドに this.result
を渡してあげます。
最終的に、以下のようになっていることを確認してください。
package myPackage.calc;
public class Calculation {
protected int value = 0;
protected int result = 0;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public void output() {
System.out.println(this.result);
}
}
Javaには Javadoc という ソースコードのコメントを元にHTML形式のAPI仕様書を生成する仕組みがあります。
output
メソッドにJavadocコメントを追加しましょう。
Javadoc は /**
から始まり */
で終わるコメントです。
慣習的にコメントが複数行に渡った場合、2行目以降の行頭には *
を入れます。
Eclipseでは /**
と入力してEnterを押下すると、自動的にJavadocコメントが挿入されます。
/**
* 計算結果をコンソールに出力します。
*/
public void output() {
}
getValue
にもJavadocコメントを追加しましょう。
/**
*
* @return
*/
public int getValue() {
return value;
}
そうすると、↑のように @return
というのが自動的に生成されます。
これは Javadocタグと言われるもので、@return
はメソッドの戻り値を記述します。
Javadocタグを使用してメソッドの定義を記述しておくと、HTMLを生成した際にJavadocがキレイに整形してくれます。
/**
* 計算に使用する値を取得します。
* @return 計算に使用する値
*/
public int getValue() {
return value;
}
setValue
にも Javadocを追加しましょう。
/**
* 計算に使用する値を設定します。
* @param value 計算に使用する値
*/
public void setValue(int value) {
this.value = value;
}
@param
は引数のタグです。
クラスやフィールドにも Javadocコメントを付けることができます。
Eclipseでコード補完する際にも表示されますので、積極的に書くようにしましょう。
Squareクラスの実装
2乗の計算を行う calculate
メソッドを定義します。
package myPackage.calc;
public class Square extends Calculation {
/**
* 値を2乗します。
*/
public void calculate() {
// valueを2乗する
this.result = this.value * this.value;
// 結果を出力する
this.output();
}
}
Programクラスの実装
最後に mainメソッド の実装を行います。
「タスク・ビュー」を開き、該当のTODOコメントをダブルクリックしましょう。
以下のように実装します。
package myPackage.main;
public class Program {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Square square = new Square();
}
}
Square
クラスに赤い波線が表示されると思います。
これは該当箇所にエラーがあるという表記で、myPackage.calc.Square
クラスが見えない事が原因です。
波線が表示されている箇所にマウスを当て、しばらく待つと「クイック・フィックス」が表示されます。
'Square'をインポートします (myPackage.calc)
をクリックしてください。
import myPackage.calc.Square;
が追加され、赤い波線が消えます。
続いて square
に黄色い波線が表示されます。
これは該当箇所に警告があるという表記です。プログラム中で定義した square
変数が使用されていない、という内容です。
実装を進めると消えますので、そのまま進めます。
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Square square = new Square();
square.setValue(Integer.parseInt(args[0]));
}
プログラム起動時に与えられたパラメータは main
メソッドの args
に格納されます。
今回は最初に渡されたパラメータを int
に変換して Square
の value
にセットします。
setValue
メソッドにマウスを合わせると Javadocコメントの内容が表示されることを確認しましょう。
さらに、setValue
の内容を確認したい、という場合は、右クリックから「宣言を開く」を選択すると該当メソッドが定義されている箇所に飛べます。
最後に計算を行い、結果を出力します。
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Square square = new Square();
square.setValue(Integer.parseInt(args[0]));
square.calculate();
}
ひととおり実装が完了したので、TODOコメントを削除しましょう。
実行
実行ボタン(丸い緑色に白抜き三角のボタン)をクリックします。
「実行構成」ダイアログが表示されますので、「Java アプリケーション」を選択して「新規の起動構成」ボタンをクリックします。
- プロジェクト: JavaStudy001
- メイン・クラス: myPackage.main.Program
となっていることを確認し、実行
をクリックします。
コンソールが表示され、以下のように表示されます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at myPackage.main.Program.main(Program.java:11)
ArrayIndexOutOfBoundsException
とは配列にアクセスする際に指定した配列の添字が要素数を超えたときに発生する 例外 です。
今回は args[0]
と配列の先頭要素を取得していますが、パラメータをひとつも指定せずに実行したので args
の配列は空っぽです。
実行時に引数を与えるように、「実行構成」を変更しましょう。
- 実行ボタンの右側の下向きの三角形をクリックし、「実行の構成」を選択します。
- 「引数」タブを表示します。
- 「プログラムの引数」に
3
と入力します。 -
実行
をクリックします。
コンソールが表示され、9
と出力されることを確認します。
デバッグ
計算結果が意図した内容と異なるなど、処理の過程を確認したい場合があります。
ソースコードに ブレークポイント を設定し、処理を該当箇所で一時停止させることが可能です。
Square.java
の 10行目、valueを2乗している箇所にブレークポイントを設定しましょう。
行番号の箇所をダブルクリックしてください。行番号の左側に青い丸が設定されます。
つづいて、虫アイコンのボタンをクリックします。
「パースペクティブ切り替えの確認」が表示されますので、「はい」をクリックしてください。
「デバッグ パースペクティブ」が表示され、先程ブレークポイントを設定した行が強調表示されています。
this.result
や this.value
にマウスオーバーすると、変数の中身が確認できます。
ステップ・オーバーボタン
をクリックすると、その行の処理が行われ、次の行に移ります。
改めて this.result
にマウスオーバーすると、計算結果が変数に格納されている事が確認できます。
this.output();
の行が強調表示されている状態で ステップ・インボタン
をクリックします。
Calculation.java
の output
メソッドが表示され、System.out.println(this.result);
行が強調表示されます。
再開ボタン
をクリックすると、次のブレークポイントまで後続行を一気に処理します。
デバッグが完了したら、右上の Java
と書かれたボタンをクリックし、「Java パースペクティブ」に戻りましょう。
Eclipseの基本的な操作について解説しました。
テキストエディタなどでプログラムを作成することと比較すると、非常に便利であることを実感していただけるかと思います。