プロジェクト

全般

プロフィール

Scene Builderの構築

はじめに

Scene Builderのソースコードを入手し、ビルドしてバイナリを作成する手順を記します。
2014年12月に、JDK 8u40用のリポジトリからScene Builderを入手してビルドを試みた日記を書きました。
http://d.hatena.ne.jp/torutk/20141203/p1

今回は、そこで頓挫したネイティブバンドル(Windows用インストーラ)を作成するところまで手順化します。

構築(バイナリ)

バージョン Windows 64bit版 備考
2.0.1 8u40_b25 JavaFX Scene Builder-2.0.1.msi
JavaFX Scene Builder-2.0.1-2.0.1.msi [*1]
  • [*1] NetBeans 8.0から認識するScene Builderのexeファイル名にしたもの

ソースコードの入手

Mercurial HGを使えるようにする

Scene BuilderのソースコードはMercurialリポジトリに置かれているので、Mercurial HGを使えるようにします。
Windows OSではCygwinを入れていると便利です。

OpenJFXのScene Builderソースコードを入手する

Scene Builderのソースコードは、OpenJFXのRuntimeリポジトリに含まれています。
メインライン(defaultブランチ)のURLは次になります。
http://hg.openjdk.java.net/openjfx/8u-dev/rt

ブランチは1本(default)だけで、tagがビルド(スナップショット)リリース毎に付けられています。
今回は、JDK 8u40のリリース版(build 1.8.0_40-b25)のtagである8u40-b25を取り出します。

~$ mkdir work
work$ hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt
  :
work$ cd rt
rt$ hg branches
default                     8703:f9a79df8559d

rt$ hg tags
tip                             8703:f9a79df8559d
8u60-b04                        8672:b76562e466d6
8u60-b03                        8658:13970a967383
8u60-b02                        8635:adae30a7fe1e
8u40-b25                        8633:6cc08ec1ea82
8u40-b24                        8632:fee546b51717
  :
rt$ hg update -C 8u40-b25
  :

ビルド

NetBeansでビルドする

NetBeansは、JDK 8u40(64bit版)で動かしています。

プロジェクトを開く

リポジトリから取得したソースコードの中でScene Builderは次に置かれています。

rt
  +-- apps
        +-- scenebuilder
              +-- samples
              +-- SceneBuilderApp
              +-- SceneBuilderKit

NetBeansで、SceneBuilderAppとSceneBuilderKitの2つを開きます。
すると、次の問題が表示されます。

netbeans_projects-01.png

両方のプロジェクト・プロパティ設定で、使用するJDKをJDK 8u40にします。

プロジェクト・プロパティのデプロイメントで、[プロジェクト・メニューでネイティブ・パッケージング・アクションを有効化]に∨を付けます。

build-native.xmlの修正

WiXのバージョン判定ロジックが、新しいWiXに適合しないので修正を入れます。

  • SceneBuilderApp\nbproject\build-native.xml
         <condition property="missing.WiX">
-            <not><and>
+            <not>
-                <contains string="${exec-output}" substring="Windows Installer Xml Compiler version"/>
+                <contains string="${exec-output}" substring="Windows Installer XML Toolset Compiler version"/>
-                <not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 1"/></not>
-                <not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 2"/></not>
-            </and></not>
+            </not>
        </condition>

アプリケーション名の設定

SceneBuilderAppプロジェクトのプロパティを開き、左側ペインで[アプリケーション]を選択し、右側ペインのタイトル欄を、"SceneBuilderApp"から"JavaFX Scene Builder"に変更します。

アプリケーション・バージョンの設定

  • SceneBuilderApp\nbproject\project.properties を開き、次を追記します。

  application.vendor=Oracle
+ application.implementation.version=2.0.1
  auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml

ビルドの実行

SceneBuilderAppプロジェクトを右クリックし、[パッケージとして] > [MSIインストーラ]を選択します。
ビルドが始まって、しばらくして成功するとMSI形式インストーラが生成されます。

rt
  +-- apps
        +-- scenebuilder
              +-- samples
              +-- SceneBuilderApp
              |     +-- dist
              |           +-- bundles
              |                 +-- Java FX Scene Builder-2.0.1.msi   <== これ!
              +-- SceneBuilderKit

ビルドで生成したMSIインストーラをインストール

Java FX Scene Builder-2.0.1.msi をダブルクリックしてインストールします。

C:\Program Files
  +-- JavaFX Scene Builder
        +-- app
        +-- runtime
        +-- JavaFX Scene Builder.exe
        +-- JavaFX Scene Builder.ico
        +-- msvcp100.dll
        +-- msvcr100.dll
        +-- packager.dll

また、スタートメニューには、[すべてのメニュー] > [Oracle] > JavaFX Scene Builder ショートカットが生成されています。

32bit版Scene Builderの生成

NetBeansを32bit版Javaで実行します。

NetBeans 8.0から認識可能なScene Builderのビルド

NetBeans 8.0から認識可能なScene Builderは、実行ファイル名、プロパティファイル名に制約があります。
http://d.hatena.ne.jp/torutk/20150308/p1

実行ファイル名の制約に合わせる

SceneBuilderAppプロジェクトのプロパティを開き、左側ペインで[アプリケーション]を選択し、右側ペインのタイトル欄を、"SceneBuilderApp"から"JavaFX Scene Builder 2.0.1"に変更します。

プロパティファイル名の制約に合わせる

現時点で、NetBeans 8.0が認識する条件の一つ、app/scenebuilder.propertiesファイルをインストーラに含める方法が見つかっていないので、インストールしてから手作業でインストール先のappフォルダ下にscenebuilder.propertiesファイルを置きます。中身は空で構いません。

その後のバージョンの構築

2018年8月時点

JDK 10対応のScene Builder 10です。

ソースコードの取得

https://wiki.openjdk.java.net/display/OpenJFX/Main

を参照し、Mercurialリポジトリを確認すると次のURLでした。
http://hg.openjdk.java.net/openjfx/jfx-dev/rt

work$ hg clone http://hg.openjdk.java.net/openjfx/jfx-dev/rt
  :
work$ 

{{fnlist}}

<div id="wiki_extentions_footer">

---

p=. {{lastupdated_at}}

</div>