<更新記録>
2007年 11月 9日
作成
2008年 1月 13日
更新
2008年 3月 27日
更新

姉妹サイト検索 Web検索


SWTプログラミングをするための環境を構築する

SWTを使うための準備

本サイトでは、SWTを使用するために、以下の準備を行います。

  • Eclipse IDEをインストールする
  • Eclipse IDEの中に恫喝されているSWTやJFaceのライブラリにCLASSPATHを通す

Eclipse IDEをインストールする

Eclipseをインストールするには、まずはこちらからダウンロードします。

「Eclipse IDE for Java Developers(Windows)」をクリックして、
適当なミラーサイトをクリックすると、ダウンロードが開始されますので、適当なディレクトリに保存します。

保存したEclipseは、解凍後インストールするのに適当な場所に移動させます。 私は「C:\Installed\Eclipse3.3」に保存しています。 執筆時点でのEclipseのバージョンは3.3です。 C:\Installedディレクトリは自分で作成しました。 これからの説明は、上記の場所にインストールしてあるものとして行いますが、 別の場所にインストールされた場合は、適切に読み替えて下さい。

余談ですが、何かプログラムをインストールする場合、なるべく「C:\Program Files」にインストールすることは避け、 インストール専用のディレクトリを作成して、自分でインストールするプログラムはまとめてそこにインストールしたほうがいいです。 というのも、後でアンインストールした時に、 アンインストール後にアンインストールしたはずのフォルダが残ったままになっていた場合でも、 それが自分がインストールしたものだということがすぐにわかるので、心配なく削除できます。 (たまにアンインストールしてもフォルダや一部の設定ファイルがアンインストールされないプログラムがある)

インストールを行ったら、その中にあるeclipse.exeをダブルクリックするとEclipseが起動します。 Eclipse IDEでJavaのプログラミングを行うために、「Workbench」をクリックして、開発画面に移動しておきます。

私の環境と若干異なるかもしれませんが、だいたいこんな感じです。 左側にあるのがパッケージエクスプローラ、真ん中が編集画面です。

まず、プロジェクトを作成しておきます。 パッケージエクスプローラ上で[右クリック]-[New]-[Java Project]を選択すると、プロジェクト作成画面が表示されますので、 プロジェクト名は「studySWT」として[Finish]をクリックします。

すると、パッケージエクスプローラに「studySWT」というプロジェクトが作成されます。

ここで作成したstudySWTというプロジェクトは、普通のJavaプロジェクトです。 Java普通のJavaプログラミングを行うことはできますが、まだSWTプログラミングを行うことはできません。 SWTのプログラミングを行うためには、SWTのライブラリへビルドパスを通さなければなりません。

SWTのライブラリへCLASSPATHを通す

SWTとJFaceのAPIをプログラミングに使用するためには、その機能を提供するライブラリにビルドパスを通さなければなりません。 これらのライブラリは、C:\Installed\eclipse3.3/pluginsの中の複数のjarファイルに格納されています。 これから先SWTとJFaceについての記述は、すべて以下のjarがビルドパスにインポートされていることを前提としますので、 Eclipse IDEを使ってプログラミングを行う場合は、 そのプロジェクトに以下のすべてのjarファイルをビルドパスに取り込んでおいて下さい。 IDEを使わない場合は、環境変数CLASSPATHに以下のすべてのjarのパスを指定しておきます。

  • org.eclipse.core.boot_3.1.100.v20060603.jar
  • org.eclipse.core.commands_3.3.0I20070605-0010.jar
  • org.eclipse.core.runtime_3.3.100.v20070530.jar
  • org.eclipse.equinox.common_3.3.0.v20070426.jar
  • org.eclipse.jface_3.3.0.I20070606_0010.jar
  • org.eclipse.osgi_3.3.0.v20070530.jar
  • org.eclipse.swt.win32.win32.x86_3.3.0v3346.jar
  • org.eclipse.ui.workbench_3.3.0.I20070608-1100.jar
  • org.eclipse.jface.text_3.3.0.v20070606-0010.jar
  • org.eclipse.text_3.3..0.v20070606-0010.jar
当然Eclipseのバージョンによってファイル名や場所が変わってきますし、使用するプラグインによっても 必要なファイルが追加されますので、少し名前が異なる場合があります。

では、私の環境(Eclipse3.3)を例に、ビルドパスを通す手順を説明します。

まず、パッケージエクスプローラにて[右クリック]-[Build Path]-[Configure Build Path]で、ビルドパスの設定ダイアログが表示されます。

その中で[Librariesタグを選択]-[Add Variable]-[Configure Variables]の順にクリックすると、
このようなダイアログになりますので、Newをクリックして NameにSWT、 PathにC:/Installed/eclipse3.3/plugins/org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar を入力してOKをクリックします。

すると、その値がClasspath Variablesに追加されます。

この作業を、すでに述べた、SWTプログラミングを行うために必要なライブラリすべてについて行います。 赤線が引いてある部分が、ビルドパスに追加したライブラリです。
OKを押してダイアログを閉じます。

これで、SWTプログラミングを開始するための準備が整いました。 これから、この環境を使用してSWTを学習していきます。

jarの名前

Eclipse APIとして取り込むjarファイルは、どう選んだらよいのでしょうか。 C:\Installed\eclipse3.3\pluginsの中のjarファイルは沢山あって、一見どれが何やらわかりません。 しかし、これらのjarは、ある一定規則のネーミング規約に基づいて命名されているので、 それに基づいて見分けることで、目的のjarが見つかることがあります (情報が提供されていたら、そちらを参照して見つけたほうが早いです。自分で探そうとすると、めちゃくちゃ時間とります)。

提供されているAPIは、 外部API内部APIとに分けることができます。 外部APIは、プログラマがそれを使うことができます。 しかし内部APIは、eclipseやその他のプラグインが使うために用意されたものなので、使うことはできません。 つまり、外部APIがSWTプログラミング用、内部APIはSWTを支える縁の下の力持ちと思って下さい。 SWTプログラミングをするには、必要な外部APIのjarをインポートする必要があります。

  • org.eclipse.foo.*:SWTプログラミングをするための外部API。
  • org.eclipse.foo.internal.*:eclipseが内部で使用するための内部API。
  • org.eclipse.foo.examples.*:ただのサンプルプログラム集の内部API。
  • org.eclipse.foo.tests.*:ただのテストプログラムの内部API。
ここで、「foo」の部分は、"swt"であったり"jface"であったりします。 内部APIは、使えないことはないのですが、それらが他者によって使われていることを想定していないため、 きちんとした構造になっていなく、将来比較的簡単に仕様が変わってしまう可能性が高いため、使わないことが推奨されています。

Eclipse APIのjavadoc

Eclipse APIのjavadocはこちらで参照することができます。 SWTプログラミングをする際には、ここを開いてAPIを確認しながら作業を行います。

初めてのSWTプログラム

C:\Installed\eclipse3.3\pluginsの中から、必要なjarをクラスパスに取り込むと、SWTプログラミングを行うことが出来るようになりますが、 きちんとした環境が構築されているか、まずはテストをしてみましょう。 あくまでも環境のテストであり、内容はまだ分からなくても問題ありません。

FirstSWT.java

package swttest;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class FirstSWT {

	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		
		shell.pack();
		shell.open();
		
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		
		display.dispose();
	}
}

これを実行すると、次のようになるはずです。
もしもClassNotFoundException等で実行できない場合は、 必要なEclipse APIのjarファイルがビルドパスまたはクラスパスにインポートされていない可能性があります。


Powered by VeryEasyCMS