調査 #34
完了JavaFX SceneBuilderの内蔵JREを最新にアップデートする方法
100%
説明
SceneBuilder 2.0は、SceneBuilderと一緒にインストールされるJRE 8(1.8.0_b132)の上で動きます。しかし、JDK 8はどんどんアップデートが進んでいるのでだんだん乖離しています。
そこで、SceneBuilder 2.0をJDK 8のアップデート版で動かす方法を探します。
高徹 高橋 徹 さんが約11年前に更新
- 説明 を更新 (差分)
- ステータス を 新規 から 進行中 に変更
- 進捗率 を 0 から 50 に変更
まず、OpenJFX(JavaFXのオープンソースプロジェクト)からSceneBuilderのソースを入手する方法を調査します。
それをビルドして最新のJREを内蔵するようにバイナリを作成します。
OpenJFXのホームページを探したところ次のようです。
https://wiki.openjdk.java.net/display/OpenJFX/Main
このページに、マーキュリアル・リポジトリ(8u-dev)のURLが記載されています。
http://hg.openjdk.java.net/openjfx/8u-dev/rt
高徹 高橋 徹 さんが約11年前に更新
ディレクトリ構成は次
rt/ +-- apps/ | +-- build.xml | +-- experiments/ | +-- performance/ | +-- samples/ | +-- scenebuilder/ | | +-- build.xml | | +-- samples/ | | +-- SceneBuilderApp/ | | | +-- build.xml | | | +-- manifest.mf | | | +-- nbproject/ | | | +-- src/ | | +-- SceneBuilderKit/ | | | +-- build.xml | | | +-- manifest.mf | | | +-- nbproject/ | | | +-- src/ | +-- toys/ +-- build.gradle +-- build.properties +-- buildSrc/ +-- doc-files/ +-- gradle.properties.template +-- LICENSE +-- modules/ +-- netbeans/ +-- README +-- settings.gradle +-- tests +-- tools
- NetBeansで、rt/apps/scenebuilder/の下にあるSceneBuilderAppとSceneBuilderKitの2つのプロジェクトを開く
- 「プロジェクトの問題」警告ダイアログが開きます。
- NetBeans のJavaプラットフォーム設定にJDK 8u40を足します。
- SceneBuilderAppとSceneBuilderKitのJavaを8u40に設定します。
高徹 高橋 徹 さんが約11年前に更新
MSI形式でビルドすると、バージョン番号の付け方でエラーになることがある。
http://msdn.microsoft.com/en-us/library/aa370859%28v=VS.85%29.aspx
高徹 高橋 徹 さんが約11年前に更新
ブログにここまでの経緯を書いた。
http://d.hatena.ne.jp/torutk/20141203/p1
高徹 高橋 徹 さんが約11年前に更新
作成したEXEインストーラをインストールし、SceneBuilderAppを起動すると、エラーとなりました。「Failed due to exception from main class.」
インストーラがインストールした中にあるJREのjava.dllを右クリックしプロパティの詳細を見ると、ファイルバージョンに8.0.25.18とある。これは、Java 8u25のJREに相違ない。
そういえば、ビルドを見直すと次のメッセージが出ていた。
Launching <fx:deploy> in native packager mode... ベースJDKがありません。パッケージはシステムJREを使用します。 Installer (.exe) saved to: C:\Users\toru\Documents\study\javaw\javafx\SceneBuilder\build-native\scenebuilder\SceneBuilderApp\dist\bundles
JDK 8u40をインストールした際に、public jreをインストールしなかったのが原因か?
高徹 高橋 徹 さんが約11年前に更新
JDK 8u40をpublic jreを含めてインストールしたが問題は変わらず。
NetBeans をJDK 8u25で動かしているから、そのJREが適用されてしまうのではと推測。
build-native.xmlを調べてみる。
ターゲット"-build-native-impl"にいろいろありそうだ。
<!--<property name="runtime.jre.home" value="${platform.home}"/>-->
コメントアウトされているこれが該当するのかな?
コメントアウトを解除しても結果は変わらず。
なお、runtime.jre.home = C:\Program Files (x86)\Java\jdk1.8.0_40
高徹 高橋 徹 さんが10年以上前に更新
しばらく放置していたので最近の状況を記載します。
- GluonがJDK 8u40を内蔵するScene Builderを配布しています。
http://gluonhq.com/products/downloads/