Adobe Flex 4.6 SDKを使うときは、Java32Bitを使うこと

ActionScriptの勉強中です。
FlashでWebサイトつくりたいとき、Adobeのソフト使う必要がある。で、調べてみたら、
Flash Professional 88,200円

高けーな・・・。

オープンソースのソフトないかな、と思って調べてみたけど、う~ん無さそう。
だけど、日本発のwonderflというサイトで、ActionScriptを使えるみたい。
http://wonderfl.net/

ちょっとためしてみた。
僕は画像ファイルを動かしてみたかったんだけれども、そういった画像ファイルをサーバ上にアップロードするのはできないっぽい。
なので、他のサイトの画像を読込んで、Flash上に表示してみるといったことをする形でやってみるしかなさそう。ためしてみたら、いちおうできたので、自PC上にWebサーバ建てて、そこから画像を提供すればとりあえず開発はできるのかなって思った。
とはいえ、ちょっと使いづらい。

で、よくよく調べたら、FlexSDKは無料で提供されている、ってわかった。
GUIでの開発はできないので、ゴリゴリのプログラミングになってしまうみたいだけど、簡単なものならこれで大丈夫そう。
ソースコードと一緒に画像ファイルを用意してコンパイルするって感じで、やりたいことを試せそう。

しかし!、試しに使おうとしたら、コンパイルが通らずに、ちょこっとハマった。
こんな感じのエラーが発生。いみわかんねーなー。

C:~~>mxmlc HelloWorld.as
 Error loading: C:\Program Files\Java\jdk1.7.0_07\jre\bin\server\jvm.dll

調べてみると、僕の使っているPCはWindows7 64Bitで、Javaの64Bit版をインストールしていた。だけれども、FlexSDKはJava32Bit版を使わないとダメらしい。
実は僕のPCには、Java32Bitもインストールしてあるんだけれども、パスが通っていないので、FlexSDKが64BitのJavaを使おうとしてエラーになっていた。
ためしに、コマンドプロンプトで、java -versionを実行してみると、64Bitって言われる。

C:~~>java -version
 java version "1.7.0_07"
 Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
 Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Java32Bitをメインにすればいいんだけれども、システム全体の設定をいじりって、何か別のトラブル起きると萎えるので、FlexSDKでコンパイルするときだけJava32Bitを使うようにしたい。

僕が使っている環境:
Windws7 64Bit
flex_sdk_4.6


(1)失敗編 NG!
まずは、コマンドプロンプト上でPATH設定追加してみた。
コマンドプロンプトを開き、

set PATH="C:\Program Files (x86)\Java\jdk1.7.0_07\bin";%path%

として、PATHの頭にJava32Bitを追加。

java -versionを実行してみると、

 java version "1.7.0_07"
 Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
 Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode, sharing)

となって、64Bit版でなくなった模様。
この状態で、再度コンパイルを試してみたけど、同じエラーが出る。う~ん。


(2)成功編 Success!
で、おもったのが、もしかしてJAVA_HOMEに64Bit版のパスが設定されているのかも。
ためしにechoで設定値を確かめてみると、

 C:~~>echo %JAVA_HOME%
 C:\Program Files\Java\jdk1.7.0_07

やはり64Bit版になってる。
というわけで、設定変更した。

 C:~~>set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.7.0_07\bin"
 C:~~>echo %JAVA_HOME%
 "C:\Program Files (x86)\Java\jdk1.7.0_07\bin"

でコンパイルが通るようになりました

 C:~~>mxmlc HelloWorld.as
 設定ファイル "C:[Flaxインストール先Dir]\frameworks\flex-config.xml" をロードしています
 C:~~\HelloWorld.as: 警告: このコンパイル単位では、設定されたランタイム共有ライブラリを読み込むた
 めの、factoryClass が Frame メタデータで指定されていませんでした。ランタイム共有ライブラリなしでコンパイルするには、-static-link-runtime-shared-librar
 ies オプションを true に設定するか、-runtime-shared-libraries オプションを削除してください。
C:~~\HelloWorld.swf (617 バイト)

HelloWorld.swf をブラウザにドラッグアンドドロップしたら、HelloWorld見えたよ。
やれやれ。


11/21追記

環境変数JAVA_HOMEにJava64Bit版のパスを指定したのは、たぶん自分自身だったと思う。
GoogleAppEngineの開発環境を準備するときに設定した気がする。

なので通常(Windowsの初期状態)は、JAVA_HOMEは設定されていない。
JAVA_HOMEは設定されていない状態であれば、PATHにJava32Bit版のパス追加でうまくいくのかもしれない。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s