[JavaFX][NetBeans] Java SE 8 Update40のJavaFXをScene Builderで使い、NetBeans 8.0と連携させる
id:torutk:20150313 のコメントに、Gluonがビルド/配布しているJava SE 8u40対応Scene BuilderをNetBeans 8.0から認識させる方法を寄せていただきました(樋口さん、ありがとうございます)。
そこで、追試してみることにしました。確認環境はWindows 7 64bit版です。
Gluon のScene Builderをインストールする
Gluonのサイトで各OS向けのScene Builder インストーラがBSDライセンス公開されています。
http://gluonhq.com/products/downloads/
Windows用は32bit版と64bit版が公開されています。ここでは64bit版をインストールします。
- SceneBuilder-8.0.0-x64.exe
このインストーラを実行してみたところ、次のフォルダーにインストールされてしまいました。インストーラではインストール先を指定する箇所はありませんでした。
C:\Users\<ユーザー名>\AppData\Local\SceneBuilder +-- app | +-- dist.jar | +-- SceneBuilder.cfg +-- runtime : +-- (JRE一式) +-- msvcp100.dll +-- msvcr100.dll +-- packager.dll +-- SceneBuilder.exe +-- SceneBuilder.ico +-- unins000.dat +-- unins000.exe
Scene Builderを起動して、[Help]メニュー > [About Scene Builder]をクリックして情報を確認したところ、Javaのバージョンは、1.8.0_40-b25 となっていました。
32bit版も試しにインストールしてみました(64bit版をアンインストールしてから)。
- SceneBuilder-8.0.0-x64.exe
インストール先ディレクトリは64bit版と同じでした。
以前インストールしたのは、ファイルが拡張子.msiで、32bit版/64bit版と分かれてなかったものです。
NetBeans 8.0で認識できるか確認してみた
Scene Builderインストールディレクトリ下にあるファイルの名前変更、コピーを実施します。
- SceneBuilder.exe のファイル名を、 JavaFX Scene Builder 2.0.1.exe に変更
- app\SceneBuilder.cfg のファイル名を、JavaFX Scene Builder 2.0.1.cfg に変更
- app\SceneBuilder.cfg を、app\SceneBuilder.properties にコピー
2. をしないと、JavaFX Scene Builder 2.0.1.exeを直接実行したらエラー「No main class specified」が発生します。
最初、NetBeansがScene Builderを見つける条件である1.と3.だけ実施したらScene Builderが実行できなかったのでそこであきらめてしまいましたが、2.があれば起動します。
1. でファイル名にバージョン的な数値(2.0.1)を入れてますが、これは条件さえあっていれば数値はなんでもかまいません。ここでは、Oracleからリリースされていた2.0.0の次という意図で2.0.1にしています。
上述の修正を実施した後、NetBeans 8.0を立ち上げ、[ツール]メニュー > [オプション] > [Java] > [JavaFX]で、Scene Builderホームを上述のGluon Scene Builderインストール先を指定しました。認識して、NetBeansのプロジェクトペインからfxmlファイルをダブルクリックするとScene Builderが起動しました。
NetBeans Dev 201505230001で認識できるか確認してみた
ナイトリービルドのNetBeans Dev 201505230001版をダウンロードしてできるかどう確認してみました。
[ツール]メニュー > [オプション] > [Java] > [JavaFX]で、Scene Builderホームを上述のGluon Scene Builderインストール先を指定しましたが、「java.lang.IllegalStateException」エラーになってしまいました。
https://netbeans.org/bugzilla/show_bug.cgi?id=251710
このあたりが関係しそうです。