64bit化奮闘中。64bit JDK では Flex SDK 3.3 が動作しない?

世間ではIE8で大盛り上がりの中、全然ついて行けてない今日この頃。いかがお過ごしでしょうか。

引き続き Vista 64bitマシンセッティング中。タイトル疑問形なのは、ネットで検索しても同様の問題に遭遇している人が見つからなかったから。もしかしたら自分だけかも、という自信のなさのため。

すでに Flash CS 4、Flex Builder 3 がインストールされている Vista 64bit マシン。
ちょっとしたコーディングには FlashDevelop (FlashDevelop.org - Index page)が何かと便利なのでインストールする。FlashDevelop でasファイルをコンパイルするには別途 Flex SDK をインストールする必要がある。Flex Builder がインストールされているのですでに Flex SDK は入っているのだが、これは Ver 3.2.0だし、今は Ver 3.3 が出ているのでせっかくだから3.3をインストールしようと思う。
http://www.adobe.com/products/flex/flexdownloads/ よりダウンロード。

JREJDKでもよい)が必要なので、JDK 1.6 Update 12をダウンロード、インストール。

で、FlashDevelop 起動。Flex SDK のパス設定。(Tools → Program Settings → AS3Context → Flex SDK Location)
これでよし。簡単なコード書いてF5でデバッグ開始。

でエラーとなる。コンパイラである mxmlc の起動に失敗しているようである。

原因の切り分けのために、コマンドプロンプトFlex SDK のパス\bin に移動して mxmlc を実行してみる。

C:\app\FlexSDK\3.3.0\bin>mxmlc -help
Error: could not find JRE
Error: could not find Java 2 Runtime Environment.

JREが見つからないそうです。そんなはずはないぞ。 java コマンドたたく。

C:\app\FlexSDK\3.3.0\bin>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode)

ほら、ちゃんとあるし。

ここでしばらく悪戦苦闘。JVM がServer VMなのがよくないのではないか、とか、じゃあどうすればClient VM になるんだよ、とか。http://sdc.sun.co.jp/java/docs/j2se/1.5.0/ja/docs/ja/guide/vm/server-class.html よりCPUの数と搭載メモリにより決定されるみたいなのでどうしようもない。

JREが見えないということは、JREの場所が分からないのではないか、環境変数の問題?そこでJAVA__HOME=JREのパス として設定。

C:\app\FlexSDK\3.3.0\bin>mxmlc -help
Error loading: C:\Program Files\Java\jre6\bin\server\jvm.dll

相変わらずエラーだがエラーメッセージが変わった。

埒があかないので別マシンで試す。FlashFlex Builderについてはライセンスの問題でインストールするわけにはいかず、全く同じ環境というわけにはいかない。OS も Vista 32bit だし。これに FlashDevelop、Flex SDK 3.3、JDK 1.6 UPdate 12をインストール。

あ、動いた。

じゃあ何が問題なんだろう、としばし考えたあげく、もしかしたら コンパイラ mxmlc は 64bit のJDKでは動かない(よって見つからないと判断)のでは?と思い早速実験。JDK 削除、32 bit版のJDKダウンロード、インストール。さあどうだ。

C:\app\FlexSDK\3.3.0\bin>mxmlc -help
Adobe Flex Compiler (mxmlc)
Version 3.3.0 build 4852
Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.

動作しました。(JAVA_HOME環境変数も必要ありませんでした。)

というわけで、JDK は32bit版を入れなくてはならなかったというわけです。でも心理的に、64 bitマシンだったら JDKダウンロード時にどれにしますかの選択肢出たら迷わず64bitにするよな−。

書いてる最中にこんなの見つけた。
http://bugs.adobe.com/jira/browse/FB-10052
64 bit版EclipseFlex SDK 動作せず。同じ現象なのかな。次のバージョンで解決?Moxie M3 (zero)の次のバージョンて??いいやこれ以上の深入りはやめておこう。


それにしても、トラブル時の原因の切り分けって難しいな、と改めて実感。