目次

Windowsユーザーのための超入門・Java開発環境構築(1)

  • Java開発環境の基礎
  • 環境変数
  • コマンドプロンプトで動かしてみる

Windowsユーザーのための超入門・Java開発環境構築(2)

  • Eclipseの予備知識
  • Eclipseの入手と環境構築
  • Eclipseの設定

Windowsユーザーのための超入門・Java開発環境構築(3)

  • Eclipseでプログラムを作成する
  • テキストエディターの機能を活用する

Windowsユーザーのための超入門・Java開発環境構築(4)

  • デバッグをする

Windowsユーザーのための超入門・Java開発環境構築(5)

  • インポートとエクスポート
  • ワークスペースの活用
  • Eclipseにおける文字コード


 インポートとエクスポート

インポートとエクスポートとは

インポート(import)エクスポート(export)とは、一般的なコンピューター用語です。エクスポートとは、あるアプリケーションの要素を他のコンピューターの同じアプリケーションや他のアプリケーションで利用できるように、ファイルなどに出力する機能のことを指します。インポートはその反対で、そうして出力されたファイルを取り込む機能のことを指します。Eclipseにおいては、メニューの「ファイル」の中にある「インポート」と「エクスポート」を選択することで、プロジェクトやワークスペースの設定など、様々な情報をインポート、エクスポートすることができます。 

1.png


プロジェクトのエクスポート

まず、今までのノートで作成したsampleプロジェクトをエクスポートしてみます。メニューからエクスポートを選択すると、下図のようなウィンドウが表示されます。プロジェクトのエクスポート方法はいくつか選択肢がありますが、ここでは「アーカイブ・ファイル」を選択してみましょう。 

2.png


この画面で、アーカイブするプロジェクト、出力先、アーカイブ方式の選択などのためのウィンドウが表示されます。必要項目を入力して、「完了」ボタンを押します。 

3.png


ここでエクスポートしたファイルを正常に取り込めるか、試してみましょう。まず、パッケージ・エクスプローラー上でエクスポートしたプロジェクトを削除してしまいます。プロジェクト名上でマウス右クリックしてコンテキストメニューで「削除」を選択するか、プロジェクト名選択状態でDELキーを押すと、下図のようなウィンドウが表示されます。デフォルトでは、「ディスク上からプロジェクト・コンテンツを削除」にはチェックは入っていません。ここにチェックを入れずに削除すると、パッケージ・エクスプローラー上からは消えますが、ソースファイルなどはそのまま残った状態になります。ここでは、敢えてチェックを入れてOKを押します。 

4.png


パッケージ・エクスプローラーは空っぽになります。ワークスペースに指定していた場所からも、sampleフォルダーは消えてしまったことでしょう。


プロジェクトのインポート

今度は、先ほど先ほどエクスポートしたアーカイブ・ファイルをインポートしてみます。メニューからインポートを選択すると、下図のようなウィンドウが表示されます。ここでは、「既存プロジェクトをワークスペースへ」を選択しましょう。 

5.png


下図のようなウィンドウが表示されます。エクスポートしたのはアーカイブ・ファイルなので、ここでは「アーカイブ・ファイルの選択」側を選び、参照ボタンで先ほどエクスポートしたzipファイルを選択しましょう。すると、「プロジェクト」の欄にエクスポートしたプロジェクト名が表示されます。 

6.png


完了ボタンを押すと、パッケージ・エクスプローラー上にsampleプロジェクトが復元されました。 

7.png


設定のエクスポートとインポート

これまで、メニューの「ウィンドウ」から「設定」を選択して、いくつかの設定を操作してきました。この設定は、ワークスペースごとに保持されます。別のパソコンにEclipseを導入したときや、同じパソコンで新しいワークスペースを作成したときには、また設定をやり直す必要があります。これでは面倒なので、設定状態をエクスポートしたりインポートしたりできるようにもなっています。


エクスポートのウィンドウで、「一般」の下にある「設定」を選択すると、下図のようなウィンドウが表示されます。デフォルトでは全ての設定をエクスポートするようになっていますが、必要に応じて項目を限定してエクスポートすることもできるようになっています。宛先設定ファイルを入力して完了ボタンを押せば、設定がファイルに出力されます。 

8.png


インポートはこの反対です。全ての設定をエクスポートした場合でも、インポートするときは特定の項目のみをインポートするといったことも可能です。 

9.png


ヒント

  • 「アーカイブ」とは、一般的にはlzhやzipなどの拡張子で表される圧縮ファイルのことを指します。アーカイブ(archive)は日本語訳すると「書庫」という意味なのですが、元来アーカイブは単に複数のファイルを一つのファイルにまとめたものを指す言葉で、圧縮の有無は関係ありませんでした。ただ、アーカイブに格納するとき、ほとんどの場合にファイルの圧縮も伴うようになったため、「アーカイブ=圧縮ファイル」という認識が広まったわけです。

ワークスペース

ワークスペースとは

ここまで、ワークスペースという言葉を何となく使ってきましたが、ここで少し詳細な解説をしましょう。Eclipseでは、ワークスペース(workspace)という入れ物に複数のプロジェクトを格納できるようになっています。ワークスペースの本来の目的は、関連性のあるプロジェクトを管理しやすくすることにあります。例えば、1つの大きなプログラムを構成するのに、複数の実行ファイルやライブラリを要することもあります。さらに、一つの言語だけではなく、例えばC/C++言語など異なる言語で作成したファイルとも連携させることもあります。そのようなときに、それら関連のあるプロジェクト群を一つのワークスペースで管理することで、あるプロジェクトでは別のプロジェクトでビルドされたファイルを参照するように設定したりすることができるようになるのです。


これは高度な利用方法になるので、初歩のうちはあまり意識する必要はありません。必要なのは、「Eclipseでプロジェクトを作成するときには、1つのワークスペースに全てのプロジェクトを詰め込まなければならない決まりなどない」ということを理解するということです。


初歩レベルでも活用できるワークスペースの分け方としては、例えばJava言語によるプロジェクトをまとめたもの、C/C++言語によるプロジェクトをまとめたものという分類をするのも良いでしょうし、何か書籍を参考にしながら学習を進めているのであれば、書籍ごと、或いは書籍内の章ごとに分けるのも有効でしょう。


ワークスペースの切り替え

Eclipseを起動すると、まずどのワークスペースを利用するかを選択するウィンドウが表示されます。ここで、参照ボタンを押して新たなフォルダーを選択したり、テキストボックス内に新たなフォルダー名(既存のフォルダー名でも可)を入力することで、そのフォルダーを新たなワークスペースとして利用できるようになります。 

10.png

再び元のワークスペースを開きたいときには、一旦Eclipseを終了して再起動し、上記のワークスペース・ランチャーから選択する方法もありますが、Eclipseを起動したまま切り替えることも可能です。メニューの「ファイル」の中にある「ワークスペースの切り替え」にマウスカーソルを当てると、現在利用中以外の最近開いたワークスペースのいくつかの候補が出てきます。その中に無いものであっても、「その他」から選択することもできます。 

11.png


ワークスペースの一覧の管理

ワークスペース・ランチャーやワークスペースの切り替えでリストに表示されるワークスペースは、設定で調整することができます。メニューの「ウィンドウ」から「設定」を選択し、左側リストから「一般」「開始およびシャットダウン」「ワークスペース」の順に展開すると、下図のような画面になります。ここで、「最近使ったワークスペース」から不要になったワークスペースが今後リストに出ないように除去することもできますし、記憶する数を変更することもできます。また、ワークスペース・ランチャーで「この選択をデフォルトとして使用し、今後この質問を表示しない」にチェックを入れたためにワークスペース・ランチャーが表示されなくなったときも、この画面の「始動時にワークスペースをプロンプト」(なんか日本語が変ですが)にチェックを入れることで元に戻すこともできます。 

12.png


ワークスペースの設定

インポートとエクスポートの項で解説した通り、新たに作成したワークスペースは設定がデフォルト状態になっています。他のワークスペースの設定をエクスポートしておいて、新たなワークスペースでインポートすることで、簡単に引き継ぐことができます。


文字コード

MS932とUTF-8

Windows版のEclipseでは、テキストエディターで使用される文字コードは、デフォルトではMS932になっています。これは、JIS(日本工業規格)によって規定されているShift_JISと呼ばれる文字コードに、マイクロソフトが独自に拡張を加えたものです。故に、基本的にはWindowsのみでしか正しく扱うことができません(Linuxなど他のOSでも、MS932に対応したエディターは提供されてはいますが)。


しかし、コンピューターの世界もグローバル化に伴って各国が独自の文字コードを使用していては都合が悪いため、世界的に統一をしようという流れが加速しています。そのためにUnicodeと呼ばれる標準化が提唱され、それに賛同した企業などによって設立されたUnicodeコンソーシアムという団体によっていくつかの新たな文字コードが開発されました。その中でも、UTF-8と呼ばれる文字コードはすでにLinuxの標準文字コードとして採用されていますし、Windows付属のメモ帳さえも対応しているように、事実上の世界標準になるつつある文字コードです。


Windowsの中だけでソースファイルを管理するのであれば、MS932のままでも当面問題にはならないでしょう。マイクロソフトが早期にMS932のサポートを打ち切ることも考えられません。しかし、UTF-8でソースファイルを記述することで、Mac OSXやLinuxなどの他のプラットフォームとソースファイルを共通に扱えるようにすることができます。


プロジェクトの文字コードをUTF-8にする

Windows版Eclipseでは、デフォルトの文字コードはMS932になっています。ワークスペース単位で標準の文字コードを変更するには、「ウィンドウ」から「設定」を開き、下図のように「一般」から「ワークスペース」を選んで「テキスト・ファイルのエンコード」を「その他」に切り替え、リストから「UTF-8」を選択します。 

13.png


また、パッケージ・エクスプローラー上でプロジェクトを選び、マウス右クリックしてコンテキストメニューから「プロパティ」を開くと、下図のようなウィンドウが表示されます。左側リストから「リソース」を選んで、「テキスト・ファイルのエンコード」を同様に設定すれば、このプロジェクトだけ文字コードを変更することができます。 

14.png


しかし、すでにMS932で作成したファイルに日本語文字が使用されていると、この操作によって文字化けしてしまいます。下図の上側はMS932で作成したコード、下側はそのまま文字コードをUTF-8に変更したものです。 

15.png


残念ながら、Eclipseの基本機能のみではこれを修正する方法がありません。文字コードを変換するプラグインも存在するようですが、プロジェクト一括で変換をすると思わぬ場所も変換されてしまうケースがあるようで、完全な方法ではありません。基本的には、使用する文字コードを決めてから開発を始めるのが無難でしょう。


標準入出力との不一致

しかし、この設定による文字コード変更には、一つ大きな落とし穴があります。上で例に挙げたコードは次の通りです。


package sample2;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;


public class Hello {


    /**

     * @param args

     */

    public static void main(String[] args) throws IOException {

        System.out.print("お名前をどうぞ  : ");

        InputStreamReader isr = new InputStreamReader(System.in);

        BufferedReader br = new BufferedReader(isr);

        String str = br.readLine();

        System.out.println(str + "さんこんにちは!");

    }

}


このプログラムは、標準入力から文字列を得る箇所があります。文字コードを最初からUTF-8に設定してコードを作成し、実行をしてみます。Eclipseのコンソールビューに「お名前をどうぞ : 」と表示されるので、適当な名前を日本語で入力すると・・・ 

16.png


出力が文字化けしてしまいました。これは標準入力から渡される文字コードと、String型変数に渡される文字コードが一致しないためです。これを回避するためには、メニューの「実行」から「実行構成」を選択し、実行しようとしているアプリケーションの実行構成から「共通」タブを選択して、「エンコード」をMS932に修正する必要があります。 

17.png


ワークスペースではUTF-8に設定し、実行構成ではMS932に設定し・・・ややこしくてわけがわかりません。はっきり言って、これでは実用になりませんね


eclipse.iniで設定

コンソールで扱う標準入出力の文字コードまでもUTF-8に統一するには、Eclipseを展開したフォルダーにあるeclipse.iniに次の1行を加えることで解決できます。


-Dfile.encoding=UTF-8


この設定を行うと、ワークスペースのテキスト・ファイルのエンコードも、デフォルトがMS932ではなくUTF-8に変化します。 

18.png

この方法だと、あるプロジェクトだけMS932にしたいというときは、逆にそのプロジェクトのみエンコードを変更する必要があります。ですから、このEclipseで作成するプロジェクトは全てUTF-8に統一すると決めてしまうことができる場合に、この方法を採るのが良いのではないでしょうか。


終わりに

最後は少し難しい話になりましたが、これで5回に渡ってお届けした「Windowsユーザーのための超入門・Java開発環境構築」を終了とします。お付き合いいただき、ありがとうございました。なお、「こうした内容も掲載して欲しい」というご希望がありましたら、アドバイスをお寄せいただければ前向きに検討させていただきます。


改版履歴

(2013/03/06)初版

(2013/03/08)タイトル変更、体裁崩れを修正