GriffonのJsmoothプラグインで作ったexeが正常に動かない
今まで動いていたexeが急に動かなくなってものすごく躓いた。
なぜJavaアプリなのにexeが必要?
お客様とお話ししてはっとした。
展開系のツールがインストールされている場合、実行可能jarファイルをダブルクリックしてもjarが展開されるだけの環境があるとのこと。
だから、jarをexeに変換してリリースして欲しいということだった。
自分のマシン環境
$ uname -vs Linux #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 $ java -version java version "1.7.0_03" OpenJDK Runtime Environment (IcedTea7 2.1.1pre)(7~u3-2.1.1~pre1-1ubuntu3) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode) $ griffon Welcome to Griffon 1.0.0 - http://griffon-framework.org/ Licensed under Apache Standard License 2.0 Griffon home is set to: /opt/griffon No script name specified. Use 'griffon help'for more info or 'griffonsh' to enter interactive mode $ pwd /home/genzou/testapp
exeを作る
プロジェクトディレクトリで以下のコマンドを実行するだけ。
$ griffon install-plugin installer ... $ griffon prepare-Jsmooth # これは一度だけやらないといけない ... $ griffon create-jsmooth ... $ ls dist/jsmooth/ bin griffon.icns icons lib testapp-windows-0.1.zip testapp.exe # exeできてる! testapp.icns msvcr71.dll
あとは、windows環境でexeを実行するだけ。
ここで問題発生。
一部のWindows環境では動かないと連絡を受けた。
エラー内容
発生しているエラー内容は以下の通り。
- -
testapp.exe - コンポーネントが見つかりません
- -
MSVCR100.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
- -
OK
- -
原因
かなり詰まった。
JREのバージョンを 1.6 から 1.7 にアップグレードすると発生するらしい。
確かにjsmoothディレクトリ配下には、msvcr71.dllしかない。
このあたりはjsmoothプラグインではどうにもならないと判断した。
対処法
結局Launch4jをインストールして対処。
以下のコマンドでjarファイルを作ってから、jarをLaunch4jでexe変換して対応した。
$ griffon prod package jar ... $ ls ./dist/jar/ testapp.jar # こいつをexe変換
ディスカッション
コメント一覧
まだ、コメントがありません