プロジェクト

全般

プロフィール

調査 #34

完了
高徹 高徹

JavaFX SceneBuilderの内蔵JREを最新にアップデートする方法

調査 #34: JavaFX SceneBuilderの内蔵JREを最新にアップデートする方法

高橋 徹 さんが約11年前に追加. 約10年前に更新.

ステータス:
終了
優先度:
通常
担当者:
カテゴリ:
-
対象バージョン:
-
開始日:
2014/11/30
期日:
2015/01/04
進捗率:

100%

予定工数:

説明

SceneBuilder 2.0は、SceneBuilderと一緒にインストールされるJRE 8(1.8.0_b132)の上で動きます。しかし、JDK 8はどんどんアップデートが進んでいるのでだんだん乖離しています。
そこで、SceneBuilder 2.0をJDK 8のアップデート版で動かす方法を探します。

高徹 高橋 徹 さんが約11年前に更新 操作 #1

  • 説明 を更新 (差分)
  • ステータス新規 から 進行中 に変更
  • 進捗率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年前に更新 操作 #2

さっそくリポジトリをクローン(けっこう時間がかかります)、Windows上でCygwinのマーキュリアルで実行しました。

$ hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt
複製先ディレクトリ: rt
全リビジョンを取得中
リビジョンを追加中
マニフェストを追加中
ファイルの変更を追加中
8448 個のリビジョン(81240 の変更を 41981 ファイルに適用)を追加
ブランチ default へ更新中
ファイルの更新数 20508、 マージ数 0、 削除数 0、 衝突未解消数 0

高徹 高橋 徹 さんが約11年前に更新 操作 #3

ディレクトリ構成は次

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年前に更新 操作 #4

MSI形式でビルドすると、バージョン番号の付け方でエラーになることがある。

http://msdn.microsoft.com/en-us/library/aa370859%28v=VS.85%29.aspx

高徹 高橋 徹 さんが約11年前に更新 操作 #5

ブログにここまでの経緯を書いた。
http://d.hatena.ne.jp/torutk/20141203/p1

高徹 高橋 徹 さんが約11年前に更新 操作 #6

作成した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年前に更新 操作 #7

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年以上前に更新 操作 #8

しばらく放置していたので最近の状況を記載します。

高徹 高橋 徹 さんが約10年前に更新 操作 #9

  • ステータス進行中 から 解決 に変更
  • 進捗率50 から 80 に変更

【棚卸し】

  • 自力でビルドする方法を確認した。
  • GluonからJDK 8u40版のScene Builderがリリースされた。

以上をもって本チケットの目的は終わっている。

高徹 高橋 徹 さんが約10年前に更新 操作 #10

  • ステータス解決 から 終了 に変更
  • 進捗率80 から 100 に変更

他の形式にエクスポート: PDF Atom