統合開発環境Eclipseを利用したプログラムの作成と実行, さらには作成したプログラムのデバッグといった,基本的な開発方法を説明します.
以下では,まず,Eclipseの起動方法を述べ, 続いてプロジェクトの作成について概観し, クラスの作成 → プログラムの実行(引数なしの場合) → プログラムの実行(引数がある場合) → デバッグという順に説明します.
本内容は2021年4月の大学実験室での環境で作成しているため, 自宅PCで作業する場合,細部に相違がある可能性があります.
Eclipseを起動するためには,図のように, 画面左下隅の「スタート」ボタン(Windowsのロゴマーク)を押し, メニューから「eclipse」を選択します.
起動すると図のようなウィンドウが開きます. 「ようこそ」タブは閉じても構いません.
プログラムの開発にあたっては,まず「プロジェクト」を作成します. プロジェクトは,プログラムに関する各種情報を管理する単位です.
一般に,Eclipseをはじめとした統合開発環境では, プロジェクトを作成することにより,開発するプログラムに適した環境を設定し, 必要なファイルをまとめて管理します. 例えば,プログラムのソースコードを記述したファイルや, ソースコードをコンパイルしてできるクラスファイルを, どのフォルダに置くかなどの設定ができ, [プロジェクト]からソースコードを簡単に参照できます.
本実習では,課題ごとにプロジェクトを作成します.
新規にプロジェクトを作成するためには, Eclipseを起動し,メニューから 「ファイル」-「 新規」 - 「Javaプロジェクト」 の順に選択します.
プロジェクトの名前を入力します. 作成するプログラムの内容を短くかつ的確に表現する名前にしてください. この例では,プロジェクト名をsampleとしています. 課題番号に関連するプロジェクト名を付けるのがよいでしょう.
入力したプロジェクト名は, このあと作成するソースファイルなどを格納するフォルダ名にもなります. また,図のように,「実行環境JREの使用」の項目は「JavaSE-11」 となっていることを確認してください.
ここでは終了せず,「次へ」のボタンを押し,設定を続けます.
Java設定のダイアログでは,左下にある, 「module-info.javaを作成」のチェックを外してから, 「終了」を選択します. こちらも参照してください.
次にクラスを作成します. Javaプログラムは,クラスという基本単位で作成します.
新たにクラスを作成するには, 左側の「パッケージエクスプローラ」ビューの, プロジェクト「sample」を左クリックで選択した状態で, メニューから, 「ファイル」-「新規」-「クラス」 の順に選択します.
出てきたJavaクラスウィザードで, 「名前」にクラス名を入力し「終了」をクリックします. クラス名は,一般的に先頭を大文字で始めます. 分かりやすく命名規約に沿った名前にしてください. 今回は「Sample01」とします. また,「パッケージ」は空欄にします.
ソースフォルダー,クラスの修飾子などの設定や, mainメソッドの追加などもできますが, 今回はデフォルトのまま先に進みます.
これでクラスが作成できました.
画面左側の「パッケージエクスプローラ」ビューに 「Sample01」というクラスが作成され, 画面中央のエディタに自動的に雛形が入力された「Sample01.java」 が表示されていることを確認してください.
それでは作成したプログラムを実行してみましょう. プログラムは,引数をとるものと,とらないものに大別できます. ここでは引数をとらないプログラムを作成して実行します.
以下のようなプログラムを作成して実行することにします. エディタでmainメソッドを入力します.
public class Sample01 {
public static void main(String[] args){
System.out.println("これはサンプルプログラムです.");
}
}
入力したソースコードを保存するには, メニューから「ファイル」-「保存」を選択します. あるいはメニューを開かずに, ショートカットキーであるCtrl+Sキーを押すことでも保存できます.
メニューから「実行」-「実行」を選択します. ショートカットキーはCtrl+F11です.
プログラムが実行され,画面下側の「コンソール」ビューに 「これは,サンプルプログラムです.」 という文字が出力されたことを確認してください.
引数をとるプログラムを実行する場合の,引数の指定方法を説明します.
サンプルとして以下のようなプログラムを作成し実行してみます. このプログラムは引数として二つの値を必要とします. エディタでmainメソッドを入力し,Ctrl+Sキーで保存します.
public class Sample01 {
public static void main(String[] args){
String msgValue01 = "これは";
String msgValue02 = "です";
System.out.println(msgValue01 + args[0] + msgValue02 + args[1]);
}
}
メニューから「実行」-「実行の構成」を選択します.
引数を指定するためには,右側のペインで「引数」タグを選択し, 「プログラムの引数」の欄にSample01.javaが要求する二つの引数を空白で区切って入力します. 例では,一つ目の引数の値が「サンプルプログラム」という文字列で, 二つ目の引数の値は「よ!」という文字列です. これで「実行」を押します.
プログラムが実行され,画面下側の「コンソール」ビューに 「これはサンプルプログラムですよ!」という文字列が出力されたことを 確認してください.
作成したプログラムが意図したとおりに動作しない場合, デバッグ機能を使用するとプログラムの誤りが見つけやすくなります. デバッグ機能は,任意の場所で実行を一時中断させたり, 変数の値を確認しながら1行ずつ実行させることなどができます.
ここでは,先に作成したサンプルプログラムを以下のように修正し, Ctrl+Sキーで保存します. 実行して「これはサンプルプログラムです.」と出力されることを 実行手順に沿って確認しておきましょう.
public class Sample01 {
public static void main(String[] args){
String msgValue = "これはサンプルプログラムです.";
System.out.println(msgValue);
}
}
プログラム中で一時的に実行を止めたい箇所(行)に ブレークポイントを設定します.
エディタで,String msgValue = "これは…";
の行の先頭(グレーの部分)をダブルクリックすると,
青い丸が表示され,ブレークポイントが設定されます.
ブレークポイントを設定すると,設定された行を実行する直前で実行を一時中断させることができます.
メニューから「実行」-「デバッグ」-「Javaアプリケーション」を選択します.
パースペクティブ切り替えの確認が表示されたら,「切り替え」を選択します. 「常にこの設定を利用する」にチェックを入れておくと, 毎回確認する必要が無くなります.
画面が「デバッグ」パースペクティブに切り替わり, 先に指定した行の直前で中断しているはずです.
「デバッグ」ビューのツールバーにあるボタンで実行状況を制御します.
今回は,「ステップオーバー」をクリックして1行実行を進めてみます. つまりブレークポイントが設定されている行だけを実行してみます.
デバッグには,さまざまな機能があり,その機能が上の各アイコンとして表示されます. 各アイコンの意味は以下の通りです.
「ステップ・オーバー」を実行すると,エディタの反転している行が一つ進み,
「変数」ビューにmsgValue
が表示されます.
変数ビューが画面に表示されていなければ,メニューのウィンドウから
「ビューを表示」 - 「変数」 と進めば画面に表示されます.
msgValue
に"これは…"
という文字列が正しく代入されていることが分かります.
ここまででは,まだ画面下の「コンソール」ビューには出力されていません.
もう一度,「ステップ・オーバー」をクリックすると,
System.out…
の行が実行され,
文字列がコンソールに出力されます.
なお,デバッグ中に変数に格納されている値を書き換えることもできます.
「デバッグ」ビューのツールバーにある「終了」をクリックしてデバッグを終了します. さらに,画面右上の方にある「Java」ボタンを押して戻ります.
レポート提出システムを使って課題を提出するためには, 作成したプログラムがどこにできるかを知っておく必要があります.
最初に述べたように,Eclipseではプログラムをプロジェクト単位で管理します.
作成したプログラムは,実体としては,
あるディレクトリ(フォルダ)中のファイルとして保存されます.
プロジェクトごとに別々のフォルダが作成され,
その下にできる src というフォルダ以下にプログラムのソースコードが記述されたファイル(拡張子 .java)が置かれます.
実習室の環境では,
z:\eclipse-workspace\プロジェクト名\src
以下にあります.
本資料の作成にあたっては,以下のウェブサイトを参考にしました.
http://www.okapiproject.com/java/java_tools/eclipse/vol_2/eclipse_operation.htm