Top > MyPage
 

SWT + JWSの簡単な使い方

SWT

Visual Editorの入手とインストール

SWTの開発にはVisual Editorがあると便利なので http://www.eclipse.org/vep/  からダウンロードしてインストールしておく。

Visual Editor(以下VE)に必要な媒体は、VE自体も含めて全部で4つ。

  1. Eclipse
  2. EMF
  3. GEF
  4. Visual Editor

Visual EditorはRuntime, SDK, Example等複数の種類の媒体があるが、ここではRuntimeをダウンロード。

インストールは他のプラグインと同様、解凍して中のpluginsとfeaturesをeclipseのフォルダにコピー。

SWTの入手

http://www.eclipse.org/swt/からプラットフォームに合わせたSWTを入手する。解凍して、SWT.jar、swt-***-***.dllをプロジェクトにコピーする。(パスを通すならいらない?)

ビジュアルクラスの作成

SWTのファイルの作成は、eclipseで、新規ファイルの作成から「ビジュアル・クラス」を選択。左のスタイルからSWTを選び、一番外の大枠のフレームの作成を行うときは「シェル」を、フレームの中で使うpanelのようなものの作成のときは「コンポジット」を選択する。

あとは、右のパレットをクリックして、パーツをドラッグアンドドロップで作成していく。部品の詳しい説明、作り方は下を参照。http://study-swt.info/foundation/helloSWT.html http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt?page=SWTonWindows http://www.limy.org/program/eclipse/plugin/swt/

java web start

サーバーの設定

サーバーで、jnlpファイルと、java web startを関連付けるための設定が必要。tomcatの場合は、web.xmlに

  <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-java-jnlp-file</mime-type>
  </mime-mapping>

のような一文を追加。apacheのときは、httpd.confに、

AddType application/x-java-jnlp-file jnlp

のような一文を追加。または.htaccessファイルに追加、作成。

jarファイルの作成、署名

まずはjarファイルにリソース、classファイルを固める。たとえば次のように

C:\> jar cf hello.jar *.class com image

classファイル、com(クラスのパッケージ)、image(画像フォルダ)をhello.jarにまとめる。

次に、jarファイルに署名をする方法。

C:\> jarsigner -keystore key.dat -storepass hogehoge hello.jar KSugiura (2)

(1)でキーファイルを作成する。このとき名前や、国、パスワードなどを聞かれるので設定する。

(2)でhello.jarに署名するが、(1)のときのパスワードがhoehogeのところに必要となるので、覚えておく。

これで署名つきのjarファイルができる。

必要となるライブラリのjarファイルにも同様に署名をする。

SWTでは、org.eclipse.equinox.common_***.jar,org.eclipse.jface_***.jar,swt.jarが必要のようだった。これらは、eclipseのpluginsや http://www.eclipse.org/vep/からダウンロードできる。

ネイティブ・ライブラリに署名

SWTの実行に必要なネイティブライブラリも必要となるが、まずjarに固めないことには署名できないので、そうしてから署名する。

C:\> jarsigner -keystore key.dat -storepass hogehoge swtwin.jar KSugiura

jnlpファイルの作成

java web startを実行するためのjnlpファイルの作成をする。

securityタグは、これがSWTを使うために「セキュリティ全面許可」でないとネイティブ・ライブラリが使えないので、許可している部分。nativelibタグでネイティブライブラリのjarを指定しないと動かない。

<jnlp 
  spec="1.0+" 
  codebase="http://www.chikkun.com/sunphi_jws" 
  href="hello.jnlp">

  <information> 
    <title>JWS Test</title> 
    <vendor>miya</vendor> 
    <offline-allowed/> 
  </information> 
  <security> 
      <all-permissions/> 
  </security>
  <resources> 
    <j2se version="1.5"/> 
    <jar href="hello.jar"/>
    <jar href="swt.jar"/>
    <jar href="org.eclipse.jface_3.2.2.M20061214-1200.jar"/>
    <jar href="org.eclipse.equinox.common_3.2.0.v20060603.jar"/>
    <nativelib href="swtwin.jar"/> 
  </resources> 

  <application-desc main-class="com.chikkun.hello.MeasureSWT"/> 

</jnlp>

作成したら、codebaseのurlでアクセスできるところにjnlpファイル、ライブラリなどを置く。