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つを開きます。
すると、次の問題が表示されます。
両方のプロジェクト・プロパティ設定で、使用する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>