torutkのブログ

ソフトウェア・エンジニアのブログ

[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インストールディレクトリ下にあるファイルの名前変更、コピーを実施します。

  1. SceneBuilder.exe のファイル名を、 JavaFX Scene Builder 2.0.1.exe に変更
  2. app\SceneBuilder.cfg のファイル名を、JavaFX Scene Builder 2.0.1.cfg に変更
  3. 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

このあたりが関係しそうです。