Eclipse Platform 入門

Eclipse プラグインを使って編集し、コンパイルし、デバッグし、そしてアプリケーションの基礎とする

Eclipse Platform の起源とアーキテクチャーを含めて、Eclipse Platform について学びましょう。最初に、Eclipse がオープン・ソースであり、複数のプログラミング言語をサポートしていることについて簡単に説明し、そして簡単なプログラミング例を使って Java™ 開発環境について説明します。また、プラグイン拡張機能として利用可能な、いくつかのソフトウェア開発ツールの調査も行います。

Chris Aniszczyk, Software Engineer, IBM

Chris AniszczykChris AniszczykはIBM Lotusのソフトウェア技術者であり、IBMのExtreme Blueインターンシップ・プログラムの卒業生でもあります。オープンソースの信奉者であり、現在はGentoo Linux (http://www.gentoo.org) ディストリビューションに取り組んでいます。またEMFT(Eclipse Modeling Framework Technology)プロジェクトのコミッターでもあります。



David Gallardo (david@gallardo.org), Software consultant

David Gallardoはソフトウェアの国際化対応、Java Webアプリケーション、データベース開発を専門とする独立系のソフトウェア・コンサルタントおよび著述家です。15年以上の間、彼はプロのソフトウェア・エンジニアであり、多くのオペレーティング・システム、プログラム言語、およびネットワーク・プロトコルについての経験があります。彼の最近の経験には、企業間 (B2B) e-commerce企業TradeAccess, Inc.における先進的なデータベースおよび国際化対応の開発が含まれています。その前まで、彼はLotus Development CorporationのProduct Developmentグループにおけるシニア・エンジニアであり、Dominoを含むLotus製品にUnicodeおよび国際言語サポートを提供するクロス・プラットフォーム・ライブラリーの開発に貢献しました。



2007年 7月 17日

この記事は David Gallardo による「Eclipse Platform 入門」のフォローアップとして、Eclipse V3.3 に関連する新しい情報を提供します。

Eclipse とは何か

Eclipse は Java ベースの拡張可能なオープン・ソースの開発プラットフォームです。Eclipse そのものは、プラグイン・コンポーネントからアプリケーションを作成するための単純なフレームワークと一連のサービスです。幸い Eclipse には、よく知られている JDT (Java Development Tools) を含め、標準のプラグイン・セットが付属しています。

大部分のユーザーは Eclipse を Java IDE (integrated development environment: 統合開発環境) として使うことに非常に満足していますが、Eclipse は単にそれだけのものではありません。Eclipse には PDE (Plug-in Development Environment) も付属しています。PDE を使うと Eclipse 環境とシームレスに統合できるツールを構築できるため、PDE は Eclipse を拡張しようとする人達にとって非常に興味深いものです。Eclipse ではすべてがプラグインなので、すべてのツール開発者は同等の開発環境を利用して Eclipse に拡張機能を提供でき、またユーザーには一貫性のある統合された IDE を提供することができます。

この同等性と一貫性は、Java 開発ツールに限定されているわけではありません。Eclipse は Java プログラミング言語で作成されていますが、Eclipse が Java 言語でしか使えないわけではありません。例えば、C/C++ や COBOL などのプログラミング言語のサポートを含むプラグインが利用可能であるか、あるいは計画されています。また Eclipse フレームワークは、ソフトウェア開発とは無関係な、他のタイプのアプリケーション (例えばコンテンツ管理システムなど) の基礎として使うこともできます。

Eclipse ベースのアプリケーションの好例が、IBM の Java 開発ツール・ファミリーの基礎を形成する IBM® Rational® Software Architect です (「参考文献」を参照)。


Eclipse はオープン・ソース

オープン・ソース・ソフトウェアは、ユーザーに一定の権利を与えることを保証することを意図するライセンスとともにリリースされたソフトウェアです。当然のことながら、最も明白な権利として、ユーザーがそのソフトウェアを自由に変更して再配布できる形でソースコードが利用できなければなりません。この、ユーザーの権利に対する保護は、コピーレフトと呼ばれる仕組みによって実現されます。このソフトウェア・ライセンスは、ユーザーに著作権と再配布権が許諾される場合を除き、著作権保護を主張して配布を禁止します。またコピーレフトは、再配布されるすべてのソフトウェアが同じライセンスでカバーされることも要求します。そのため実質的に、著作権の目的が逆になります。つまり著作権を使ってソフトウェアの開発者に権利を保持させるのではなく、ユーザーに権利を与えるのです。コピーレフトはよく、「all rights reversed (すべての権利を逆転)」と表現されます。

オープン・ソース・ソフトウェアに関して蔓延している不安や不確実性、疑問などの大部分は、一部のコピーレフト・ライセンスが、いわゆるウィルス的な性質を持つことによるものです。この性質というのは、もし皆さんが開発するプログラムの一部としてオープン・ソース・ソフトウェアを使用すると、コピーレフト・ライセンスは皆さんが開発する独自部分に「感染する」ため、皆さんは自分の知的財産を失ってしまうという考え方です。つまりこのライセンスは、オープン・ソース・ソフトウェアと同梱されるすべてのソフトウェアは、新しく開発されるすべてのソフトウェアを含め、同じライセンスの下でリリースされなければならないと要求する可能性があります。これは、最も有名なコピーレフト・ライセンスである GNU General Public License (例えば Linux® はこのライセンスでリリースされています) ではその通りかもしれませんが、商用の懸念事項とコミュニティーの懸念事項を別の割合でバランスさせた他のライセンスもあるのです。

Open Software Initiative (OSI) は、オープン・ソースが何を意味するのかを明示的に定義し、その基準を満足するライセンスを認定する非営利組織です。Eclipse はOSI が承認した EPL (Eclipse Public License) V1.0 の下でライセンスされています。これは、オープン・ソースの作成者達に対して公正さを保ちながら商用での Eclipse の採用を促進させるためのライセンスです。

Eclipse用のプラグインを作成する開発者、あるいはソフトウェア開発アプリケーションのベースとして Eclipse を使う開発者は、彼らが使用あるいは修正するすべての Eclipse コードをEPL の下でリリースすることが要求されますが、彼らが独自に追加したものは彼らが望む任意の方法で自由にライセンスすることができます。Eclipse のソフトウェアと同梱した独自コードはオープン・ソースとしてライセンスする必要はなく、ソースコードを公開する必要もありません。

大部分の人はプラグイン開発や Eclipse をベースにする新製品の作成に Eclipse を使うことはないかもしれませんが、オープン・ソースという Eclipse の性質は、単に Eclipse を無料で入手できるという事実以上に (そして商用向けのライセンスではプラグインが有料であるという事実にもかかわらず) 重要です。オープン・ソースによって新しい手法が推進され、また (商用の開発者を含めた) 開発者が共通のオープン・ソース・コード・ベースに貢献するための刺激になります。そうなる理由はいくつかありますが、おそらく最も重要な理由は、プロジェクトに参加する開発者が多ければ多いほど、そのプロジェクトは誰にとっても価値あるものになるという点です。そしてプロジェクトが有用なものになるにつれ、より多くの開発者がそれを使うようになり、それを取り巻くコミュニティーが (Apache や Linux に関して形成されたコミュニティーのように) 形成されるのです。(ライセンスに関して詳しくは「参考文献」を参照してください。)


Eclipse とは何か

Eclipse はオープン・ソース・コミュニティーです。Eclipse のプロジェクトでは、拡張可能なフレームワークやツール、ランタイムなどで構成されるオープンな開発プラットフォームの構築に重点が置かれ、ライフサイクル全体にわたってソフトウェアを構築し、デプロイし、管理できるようにしようとしています。Eclipse Foundation は非営利の、メンバーによってサポートされる組織であり、Eclipse プロジェクトをホストする一方、オープン・ソースのコミュニティーと、補完し合う製品やサービス群から成るエコシステムの育成を行っています。

Eclipse Project は元々 2001年11月に IBM によって作られ、ソフトウェア・ベンダーのコンソーシアムによってサポートされていました。Eclipse Foundation は Eclipse コミュニティーをサポートするための独立した非営利組織として、2004年1月に設立されました。Eclipse Foundation は、Eclipse の周囲にベンダーから中立でオープンな、そして透明性の高いコミュニティーが繁栄するように設立されました。今日では、Eclipse コミュニティーはソフトウェア業界のあらゆる分野の個人や組織で構成されています。

Eclipse Foundation は Eclipse の継続的な開発を管理し、方向付けを行っています。Eclipse Foundation はコミュニティーにサービスを提供していますが、実際に Eclipse のプロジェクトで作業するオープン・ソース開発者 (コミッターと呼ばれます) を雇用しているわけではありません。Eclipse コミッターは通常、オープン・ソース・プロジェクトでボランティアとして作業時間を提供する組織、あるいは独立の開発者に雇用されます。

ここまでは Eclipse に対する見解とその歴史、そして政略を見てきました。今度は製品そのものを見ることにしましょう。


Eclipse Workbench

初めて Eclipse を開くと、ワークベンチ内部にあるようこそ (Welcome) ページが表示されます (図 1)。Eclipse ユーザーには、概要 (Overview) ページに行くためのいくつかの選択肢が与えられており、まずこの概要ページを見るようにお勧めします (図 2)。このページでは新機能を見ることができ、あるいはいくつかのサンプルを試したりチュートリアルを見たりすることができます。

図 1. Eclipse のようこそ (Welcome) ページ
Eclipse のようこそ (Welcome) ページ
図 2. Eclipse の概要 (Overview) ページ
Eclipse の概要 (Overview) ページ

Eclipse のワークベンチは、ビューという、いくつかのパネルから構成されています (例えばナビゲーター (navigator) ビューやアウトライン (outline) ビューなど)。これらのビューを集めたものは、パースペクティブと呼ばれます。最も一般的なパースペクティブは、プロジェクトを管理したり、またプロジェクトのファイルを見たり編集したりするための基本的なビューのセットである Resource パースペクティブです。

初めてのユーザーは、まず図 2 に示す概要ページから始めて Eclipse を学ぶようにお勧めします。ワークベンチの基本 (Workbench basics) セクションには、Eclipse を始めるにあたって最適な情報がたくさん含まれており、Eclipse のさまざまな部分についての情報や、それらが互いにどのように関連して動作するかといった情報が含まれています。この資料を数分かけて読んだら、今度は一気に Eclipse の JDT (Java Development Tools) を操作してみましょう。Eclipse を学ぶためには、実際に試すのが一番です。

この、Eclipse についての短いツアーを続けるために、新しい Java プロジェクトを作成します。File > New > Java Project を選択し、プロジェクト名を入力するように促されたら Hello と入力し、そして Finish をクリックします。

次に、(まだ Java パースペクティブを見ていなければ) Java パースペクティブを見ることにします。画面をどのように管理したいかにより、Window > Open Perspective > Java を選択して現在のウィンドウでパースペクティブを変更することもでき、あるいは Window > New Window を選択して新しいウィンドウを開いてから新しいパースペクティブを選択することもできます。

ご想像の通り、Java パースペクティブには Java 開発に適した一連のビューがあります。これらの中の 1 つに、最上部左側のビューとして、さまざまな Java パッケージやクラス、JAR、その他種々雑多のファイルを含む階層構造があります。このビューはパッケージ・エクスプローラー (Package Explorer) と呼ばれます。また、メイン・メニューが 2 つの新しいメニュー項目 (ソース (Source) とリファクター (Refactor)) を含んで展開されていることにも注意してください。


JDT (Java Development Tools)

Java 開発環境を試すために、Hello World アプリケーションを作成して実行することにします。Java パースペクティブを使って Hello プロジェクトのソース・フォルダー (src) を右クリックし、New > Class を選択します (図 3)。表示されるダイアログ・ボックスで、クラス名として Hello と入力します。Which method stubs would you like to create? (作成するメソッド・スタブの選択) の public static void main(String[] args) にチェックを入れ、そして Finish をクリックします。

図 3. Java パースペクティブで新しいクラスを作成する
Java パースペクティブで新しいクラスを作成する

これによって、Hello クラスと空の main() メソッドを持つ .java ファイルがエディター領域に作成されます (図 4)。このメソッドに次のコードを追加します (i の宣言が意図的に省略されていることに注意してください)。

図 4. Java エディターでの Hello クラス
Java エディターでの Hello クラス

入力していくと、構文チェック機能やコード補完機能など、Eclipse のエディター機能のいくつかに気が付くはずです。また、開き括弧や二重引用符を入力すると、Eclipse は対応する閉じ括弧や二重引用符を自動的に提供し、そのペアの間にカーソルを置きます。

他のケースとして、Ctrl+1 を使うとコード補完機能を呼び出すことができます。コード補完機能は、キーボードやマウスで選択可能な候補のリストをコンテキストに応じて提供します。こうした候補は、特定のオブジェクトに専用のメソッドのリストのこともあれば、さまざまなキーワード (for while など) に基づいて展開されるコード・スニペットのこともあります。

構文チェック機能はインクリメンタルなコンパイルに付随して行われます。コードを保存する際に、そのコードはバックグラウンドでコンパイルされ、構文エラーがチェックされます。デフォルトで、構文エラーには赤の下線が付けられ、また白い X のついた赤い四角が左マージンに表示されます。他のエラーはエディターの左マージンに電球のマークが表示されますが、これらはユーザーに代わってエディターが修正できる可能性のある問題を示しています (この機能はクイック・フィックスと呼ばれます)。

上記のコードでは for 文の隣に電球マークが表示されていますが、これは i の宣言がないためです。この電球マークをダブルクリックすると、修正案のリストが表示されます。この場合では、クラス・フィールド i を作成する (Create field ‘i ’) か、ローカル変数 i を作成するか (Create local variable ‘i ’)、あるいはメソッド・パラメーター i を作成する (Create parameter ‘i ’) ように提案されます。これらの各提案をクリックすると、その提案を選択した場合に生成されるコードが表示されます。図 5 は、提案のリストと、ローカル変数用に提案されるコードを表示しています。

図 5. クイック・フィックスによる提案
クイック・フィックスによる提案

この提案をダブルクリックすると、そのコードが適切な場所に挿入されます。

エラーなしでコードがコンパイルできると、Eclipse メニューから実行 (Run) を選択すればプログラムを実行することができます。(コンパイルはコードを保存する際に行われるため、独立したコンパイル・ステップがないことに注意してください。コードに構文エラーがなければ、そのコードをそのまま実行することができます。) 適切なデフォルトが設定された起動構成 (Launch Configurations) ダイアログ・ボックスが表示されるので、一番下の右側にある実行 (Run) をクリックします。タブを持つ新しいパネルが下側のパネル (コンソール (Console)) に現れ、プログラムの出力が表示されます (図 6)。

図 6. プログラムの出力
プログラムの出力

また、Java デバッガーでもプログラムを実行することができます。まず、エディター・ビューの左側の、System.out.println() をコールしているコードの隣の灰色のマージンをダブルクリックして main() System.out.println() にブレークポイントを設定します。すると青い丸が現れます。Run メニューから Debug を選択します。先ほど説明した通り、Launch Configurations ダイアログが表示されます。Run を選択します。パースペクティブは自動的に Debug パースペクティブに切り替わります。このパースペクティブには、いくつかの興味深い新しいビューがあります (図 7)。

図 7. Debug パースペクティブ
Debug パースペクティブ

このパースペクティブの最上部左にあるデバッグ (Debug) ビューに注目してください。このビューはコール・スタックを表示しており、タイトル・バーにツールバーがあります。このツールバーは、プログラムの再開や中断、あるいは終了のためのボタンを含め、次の文にステップ・インしたり、あるいは次の文をステップ・オーバーしたり、あるいはメソッドからリターンするなど、プログラムの実行をコントロールすることができます。最上部右側のパネルには、変数 (Variables) やブレークポイント (Breakpoints)、式 (Expressions)、表示 (Display) など、タブを持つビューがいくつかあります。ここでは i の現在の値が見られるように Variables をクリックしました。

どのビューについても、コンテキストに応じたヘルプから情報を得ることができます。そのためにはビューのタイトルをクリックし、そして F1 を押します。


その他のプラグイン

アプリケーションの編集やコンパイル、デバッグなどのための JDT のようなプラグインの他に、モデリングからビルド自動化やユニット・テスト、パフォーマンス・テスト、バージョン・コントロールや構成管理に至るまで、完全な開発プロセスをサポートするプラグインもあります。

Eclipse には、ソース・コントロール用のオープン・ソースの CVS (Concurrent Versions System) を扱うためのプラグインが付属しています。Team プラグインを CVS サーバーに接続すると、開発チームのメンバーが他のメンバーの行った変更を失うことなく一連のソースコード・ファイルを扱うことができます。Eclipse 内部からソース・コントロールを行うには CVS サーバーを設定する必要があるため、その方法についてはここでは詳しく触れません。しかしスタンドアロンの開発にとどまらずチーム開発をサポートできる機能は、Eclipse に重要かつ不可欠な機能です。

Eclipse Foundation にサポートされ、ホストされるプラグインを見るためには、Eclipse の Web サイトを訪れてください。また利用可能なプラグインの完全なリストを見るためには、プラグインの索引の役割を持つ Eclipse Plug-in Central を見てください。


Eclipse Platform のアーキテクチャー

Eclipse Platform には、JDT や PDEなど、さまざまなプロジェクトをサポートする強力なプラグイン・セットが付属しています (図 8)。

図 8. 単純化した Eclipse Platform のアーキテクチャー
単純化した Eclipse Platform のアーキテクチャー

濃い青の部分は、Eclipse の RCP (Rich Client Platform) のコア部分のコンポーネントを示しています。RCP の概念そのものはこの記事の範囲外ですが、RCP は、例えば Lotus Notes® 8 などのアプリケーション開発にも使用できる Eclipse のプラグイン・セットと考えることができます。明るい青の部分はオプションですが、RCP ベースのアプリケーションに含めることが推奨されるオプションです。灰色の部分は完全にオプションです。このプラットフォームはいくつかのコンポーネントから構成されていますが、そのいくつかを下にあげました。

Runtime
ランタイムは、OSGi の仕様および拡張と拡張ポイントの概念に基づいて Eclipse のプラグイン・モデルを定義するコードです。またランタイムはロギングや並行性といった追加のサービスも提供します。
JFace/SWT
SWT (Standard Widget Toolkit) は Eclipse のルック・アンド・フィールを実現するウィジェット・セットです。JFace は SWT の上の単なるレイヤーであり、MVC (Model-View-Controller) クラスをいくつか提供しています。これらのクラスを利用するとグラフィカル・アプリケーションの開発を容易に行うことができます。
Workbench
ワークベンチによって Eclipse をパーソナライズすることができます。ビューやパースペクティブ、エディターなどの概念は、このレベルで定義されます。
Help (ユーザー・アシスタンス)
Eclipse のコンポーネントを利用するとユーザー・アシスタンを提供することができます。これはヘルプ・システムによって行われ、ユーザーはこれを利用してヘルプのドキュメンテーションを検索したり、あるいはエンド・ユーザーにとっての対話型のタスク・リストと考えられるチートシートを検索したりすることができます。
Update
Eclipse の update コンポーネントは、あるバージョンから別のバージョンにアプリケーションを更新するための機構を提供します。
Team
Team コンポーネントは、ベンダーが独自のバージョン・コントロール・システムをプラグインできるようにするためのフレームワークで構成されます。そうした実装を提供している一例として、そのまま使用可能な形で Eclipse に同梱されている CVS プラグインがあります。

まとめ

当初の IBM からのコードの寄贈から、Eclipse は 100 を超える企業が参加する、本格的なオープン・ソースのエコシステムに成長しています。移植と拡張が可能なオープン・ソースのフレームワークは新しい概念ではありませんが、成熟していて、堅牢かつスマートな設計により、Eclipse はまったく新しい原動力をもたらしています。

Eclipse エコシステムにようこそ。この記事の目標は、皆さんがすぐに Eclipse プラットフォームを使いこなせるようにすることでした。この記事ではその目標を、初心者向けの説明文と簡単な実践演習を通して実現しました。この記事で得られた知識を元に、Eclipse エコシステムに積極的に携わるメンバーとなってください。

参考文献

学ぶために

製品や技術を入手するために

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
  • Eclipse newsgroups には、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=251580
ArticleTitle=Eclipse Platform 入門
publish-date=07172007