[Eclipse] SWTを使って作ったアプリケーションが動かない | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

Eclipse の SWT を使ってちょっとした Windows アプリケーションを作成しました。

Eclipse 上から起動して正常に動作することが確認できたので、ビルドを行ってアプリケーションを配布形式にまとめました。

そして、早速実行してみたのですが...


以下のエラーが出ました。

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Layout

理由は簡単。

SWT のライブラリを配布していませんでした^^;

そこで、Eclipse で使用している SWT のライブラリを調べ、Eclipse の plugins ディレクトリにあるその jarファイル(org.eclipse.swt.win32.win32.x86_3.1.1.jar)を配布ファイルに含め、クラスパスにも追加しました。


すると、今度は以下のエラーが出ました。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path

swt-win32-3139 というのは swt-win32-3139.dll のことで、Windows 上で SWT の GUI を表示するための DLL だそうです。

で、これがどこにあるかというと...

SWT のライブラリ(org.eclipse.swt.win32.win32.x86_3.1.1.jar)の中に含まれているんですね。

ということで、org.eclipse.swt.win32.win32.x86_3.1.1.jar を解凍して swt-win32-3139.dll を取り出し、この dll をパスの通ったディレクトリに配置すると...


正常に Windowsアプリケーションが起動しました。