SWT(swt.jar)を使用しているJavaアプリが起動できない場合の対応

  • 投稿 : 2012-11-09
  • 更新 : 2013-05-12
・Windowsの64ビット版を使用している
・Javaでできたアプリケーション(Java、JDKが必要だと書かれているアプリ)
・JDK(java)は64ビット版をインストールしている
・インストールしたフォルダーの中に「swt.jar」が含まれている
・java -jar jarファイル名で起動させるとエラーを吐き出す
xGPS Manager
http://xgps.xwaves.net/index.php?title=Downloads
というソフトで現象が発生したのですが、たぶん一般的な話だと思います。

検索する限り、2011年ぐらいでもWindwosで動作している様子を書いているブログがあったので、よく考えてみたら原因らしきものがわかりました。

対応方法

Windowsの64ビット版のSWT(swt.jar)を手に入れて、現状あるファイルを上書きする

ダウンロード先:
SWT: The Standard Widget Toolkit
http://www.eclipse.org/swt/

「Releases」のところから、ダウンロードできます。
今回は、「swt-4.2.1-win32-win32-x86_64.zip」とファイルを使用しました。
zipを解凍すると、swt.jarが出てきますので、それで上書きしてください。

原理

Javaアプリは、OSに関係なく動作するのですが、「SWT(swt.jar)」というライブラリーはOS依存で、おまけに中身がJavaコードでないネイティブコードみたいなのです。

だから、対応したものに差し替えてあげれば動作するということですね。そのJavaアプリが開発された時は、Windowsの64ビット版がなかったか、一般的でなかったからあまり考慮されていないだけだと思います。
スポンサーリンク