2011年10月17日月曜日

NetBeans7.1betaでJavaFXなMac

Mac版 JavaFX2.0のDeveloper Preview(いわゆるパブリックベータ)が出てから暫く経つが、速攻ダウンロードしたのにサンプルすら実行できていないという体たらく。というのも時間よ、止まれ、な状態だからだが、jjug ccc 2011 fallで桜庭さんのプレゼンを見に行くのに、最低限これだけはクリアしないと失礼だろうと、頑張ってみたら出来た。

Mac版のダウンロードと解凍までは躓くことは考えられないので、特にmemoしない。それと最初に断っておくが、javafxの当該ページ(や、そこからリンクされているNetBeansのページ)を、落ち着いて飛ばさずによく読めば、ほぼ問題なく(一部NetBeansの設定で騙される部分があるが、そこは個人の力量とも)インストールというか環境整備できるので、とにかく面倒くさがらずによく読むこと。急がばなんとやら。

まずはサンプルの実行から。

え?サンプルが実行できないって?と驚くかもしれないが、サンプルだけダウンロードして.jarファイルを実行しても動かない。まあ当たり前だが、JavaFX2.0 SDKがいる。そこまではいい。だがそれとサンプルの関係がよく分からない。人によっては、/System/Library/Java/Extentions/に然るべきファイル群をぶっこむと良いという人もいるようだが、その意味すら理解出来ない自分のことは、この際ほっとこう。

さて、答えは前述のjavafxの当該ページにある。ここに英語が不得意な自分用に親切にディレクトリ構成を明記して説明してくれている。だがこれをちゃんと理解できなかった。つまりこのようなディレクトリ構成で"サンプル入りの"SDKがあるの?と思ってしまったのだ。だがSDKとサンプルは別配布になっている。しかしこうした(説明と実際がちょっと違う)事はままあることなので、と思ってしまっていたのだが、そうではなくて、よく読むと「ダウンロードしたサンプルをSDKの中に入れてね、こういう風に見えるように」という意味だった。

結論。
1. JavaFX2.0 SDK for Mac(zipファイル)をダウンロードして解凍(というか自分の環境では勝手に展開される)。
2. サンプル(zipファイル)をダウンロードして解凍
3. 解凍して出てきたJavaFX2.0 SDKのフォルダに解凍したサンプルをフォルダごと突っ込んで、javaFXの当該ページの説明にあるようなディレクトリ構成にする(以下当該ページより引用)

javafx-sdk2.0\
bin\
docs\
javafx-samples-2.0\
rt\
.
.

(引用おわり)

4. サンプルを実行。例えばjavafx-samples-2.0の中の"Ensemble.jar"をダブルクリック。すると素晴らしいサンプル集アプリが起動して目が回る。

以上。

つづいてNetBeans7.1betaでの実行。

これは本当は画面チャプチャしたいのだが時間がないので、説明だけ。
JavaFXのサンプルプロジェクトを開くところまでは簡単に行けると思う。だがこの先エラーが表示されてさあ大変となる。ポイントは、JavaFX Platform;の項目で、"Manage Platforms.."ボタンを押し、/Library/Java/Homeを追加する。これをやると初めてJavaFXのタブ(といってもボタン型だけど)が表示されるようになり、そこでJavaFX2.0 SDKのディレクトリを設定できるようになる。デフォルトで設定されているJDK 1.6(デフォルト)ではnダメ。細かくみるとファイル構成が違うが、原因は全く分かっておらず、単なる結果オーライだ。Platformsの設定はJavaプラットフォームマネージャーを初めから設定しても大丈夫な気がするが、試してはいない。

ところがこのJavaFXの設定にトラップが仕掛けられている。

Enable JavaFXのチェックを入れると、JavaFX SDK、Runtime、Javadoc、Sourcesの4項目のパスが設定できるようになるが、普通、心理的に上から順番に設定すると思う。そんな自分を誰が責めるだろうか。だがRuntimeを設定しないとエラーになり、さっぱりわけが分からない状態に陥る。NetBeansのサイトでWindows版の設定を読んでたら、SDKのパスはやっぱりSDKのトップフォルダになっているので、もしやと思い、Runtimeも設定してみたらなんと、その瞬間にエラーが消えたではないか! なんだよ〜、最初に何〜んか、そんな気もしたんだけどサァ、エラーってほら、やっぱり気になるし、強引に次を設定すれば、ってのはねえ、こう、うっすら片隅に浮かんでいるだけなので、中々手まで降りてこないっていう、ね。というか、これはUIとしてはバツだろう、と逆切れるw

ともあれ、Runtimeに設定するのは、SDKがjavafx-sdk2.0.2-betaだとすると、javafx-sdk2.0.2-beta/rt だ。とりあえずこの2つを設定するとエラーもすっきり消えてなくなり、サンプルがNetBeans上でビルド出来たりデバッグ出来たりするようになる。

ちなみにMacOSはまだ10.6。

ところでccc、node.jsも聞きたいのだが、それだと時間空き過ぎるのが難点。その間の素晴らしい講義は多分、ついて行けないだろうしなあ。どこか電源のあるところでお茶しながらCoreAudioかEnsemble.jarしてるという手もあるが、node.jsもきっとついて行けないだろうしなあ。迷う。

0 件のコメント:

コメントを投稿