Revision 2 as of 2011-09-01 06:00:23

Clear message
Locked History Actions

java/jws

Java Web Start

以下では特にJava Web Startを使用してSWTアプリケーションを配布する際の問題について調査する。

SWTは動作対象とする各プラットフォームに応じて、必要となるjarファイルが異なる。 つまり、windows用のjarファイルとlinux用のjarファイルは違う。これはSWTに各プラットフォーム用のネイティブライブラリを含むからである。

SWTアプリケーションを配布する方法

How to deploy SWT Applications using Java Web Startに記述がある。要するに、

  • http://www.eclipse.org/swtで配布されている各プラットフォーム用のzipファイルを展開してその中のswt.jarファイルをswt-native-<ws>-<os>-<arch>.jarの形に名称変更する。

  • それらのjarファイルに署名する。
  • jnlpファイルを記述する。以下のように、同じWindowsであっても、アーキテクチャによって異なるものになる。

        <resources os="Windows" arch="x86">
                <nativelib href="swt-native-win32-windows-x86.jar" />
                <jar href="swt-win32-windows-x86.jar" />
        </resources>

        <resources os="Windows" arch="x86_64">
                <nativelib href="swt-native-win32-windows-x86_64.jar" />
                <jar href="swt-win32-windows-x86_64.jar" />
        </resources>

        <resources os="Windows" arch="amd64">
                <nativelib href="swt-native-win32-windows-amd64.jar" />
                <jar href="swt-win32-windows-x86_64.jar" />
        </resources>

しかし、SWTでのプラットフォームの切り分け方とJNLPでのそれとは異なるフォーマットになっている。つまり、SWTでは「<ws>-<os>-<arch>」となっているが、JNLLPでは「os="?" arch="?"」である。この対応表のようなものはどこにも見つからない。

<ws>-<os>-<arch>の意味