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="?"」である。この対応表のようなものはどこにも見つからない。