web-dev-qa-db-ja.com

Raspberry PiでJavaFXを使用できますか

JavaFXを使用してRaspberry Pi用のプログラムを作成したいのですが、Raspberry PiのJava SDK 8はJavaFXをサポートしていないようです。

だから私の質問は、JavaFXがRaspberry Pi 2/3?はいの場合、JDKにプラットフォーム上にJavaFXライブラリがないのはなぜですか?それをサポートする方法、またはRaspberry PiでJavaFXアプリケーションを作成する価値はありますか?

使用中のJavaバージョンは1.8.0_65

16
Ahmed

Oracle JDK for ARM 8u33 / Oracle Java SE Embedded 8u33以降を使用している場合、JDKにバンドルされているJavaFXは見つかりません。 Oracleは、ARM 8u33以降のバンドルからJavaFX Embeddedを削除しました。詳細については、 OpenJFXメーリングリストのこのスレッド を参照してください。

では、Raspberry PIでJavaFXを使用できますか?

まあ、もちろんできます。次に、組み込みデバイスでJavaFXを実行できるいくつかの方法を示します。

  1. あなたのベストショットは、ARMのjfxrt.jarを含む Gluon によって提供される組み込みSDKをインストールすることです。 jarをJDKにコピーして、JavaFXをRaspberry Piで実行できます。 Gluonは、ユーザーがプラグインを介してJavaFXプラグインをデプロイできるようにすることで、サポートをさらに拡張します。見て :

  2. JavaFXをバンドルする以前のバージョンのOracle JDKを使用できます。
  3. OpenJFXをビルドしてJDKに追加することもできます(簡単な方法ではありません)。

組み込みのJavaFXについて詳しく知りたい場合は、以下のリンクが役立ちます。

20
ItachiUchiha

いくつかの理由で上記のリンクが機能しないが、 https://bitbucket.org/javafxports/arm/downloads/ からダウンロードでき、フォルダを解凍してコピーできました

armv6hf-sdk/rt/lib/ext/**jfxrt.jar**              --> jre/lib/ext/
armv6hf-sdk/rt/lib/arm/*****                      --> jre/lib/arm/ 
armv6hf-sdk/rt/lib/**javafx.platform.properties** --> jre/lib/ 
armv6hf-sdk/rt/lib/**javafx.properties**          --> jre/lib/ 
armv6hf-sdk/rt/lib/**jfxswt.jar**                 --> jre/lib/

Raspberry Piを再起動し、FXアプリケーションが正常に機能した

5
Gopi Krishna

Gluonからビルド済みのバイナリをダウンロードすることもできます。

http://gluonhq.com/gluon-supports-javafx-embedded-binary-builds-now-available/

1
mipa

はい、JavaFxを使用できます。

これは、Raspberry Piでjavafxを有効にするスクリプトです(raspbianストレッチでテスト済み)。

#!/bin/bash
# install javafx on Raspberry Pi
# WF 2019-01-13
src=/usr/local/src
ext=/usr/lib/jvm/jdk-8-Oracle-arm32-vfp-hflt/jre/lib/ext
javafx=armv6hf-sdk

#ansi colors
#http://www.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html
blue='\033[0;34m'
red='\033[0;31m'
green='\033[0;32m' # '\e[1;32m' is too bright for white bg.
endColor='\033[0m'

#
# a colored message 
#   params:
#     1: l_color - the color of the message
#     2: l_msg - the message to display
#
color_msg() {
  local l_color="$1"
  local l_msg="$2"
  echo -e "${l_color}$l_msg${endColor}"
}

or
#
# show the given error message on stderr and exit
#
#   params:
#     1: l_msg - the error message to display
#
error() {
      local l_msg="$1"
        # use ansi red for error
          color_msg $red "Error:" 1>&2
            color_msg $red "\t$l_msg" 1>&2
          exit 1
      }
#
# error
#
# show the given error message on stderr and exit
#
#   params:
#     1: l_msg - the error message to display
#
error() {
  local l_msg="$1"
  # use ansi red for error
  color_msg $red "Error:" 1>&2
  color_msg $red "\t$l_msg" 1>&2
  exit 1
}

color_msg $blue "Trying to install javafx"
if [ ! -d $ext ]
then
  error "directory $ext does not exists - was expecting a Java installation"
fi

if [ ! -d $src ]
then
  error "directory $src is missing - was expecting it"
fi
cd $src 

if [ ! -f $javafx.Zip ]
then
  color_msg $blue "downloading $javafx.Zip"
  Sudo curl -L https://gluonhq.com/download/javafx-embedded-sdk/ -o $javafx.Zip
else
  color_msg $green "$javafx.Zip already downloaded"
fi

if [ ! -d $javafx ]
then
  color_msg $blue "extracting" $javafx.Zip
  Sudo unzip $javafx.Zip
else
  color_msg $green "$javafx already extracted"
fi

cd $ext
color_msg $blue "creating symlinks"
for path in rt/lib/arm rt/lib/ext/jfxrt.jar lib/javafx-mx.jar lib7JFX rt/lib/jfxswt.jar
do
  from=$src/$javafx/$path
  b=$(basename $from)
  if [ -L $b ]
  then
   color_msg $green "symbolic link $b already exists"
  else
   Sudo ln -s $src/$javafx/$path .
  fi
done
0
Wolfgang Fahl

はい、Raspberry PiでJavaFXを実行できますが、一部のクラスライブラリは、サンプルメディアなどのデフォルトでは機能しません。現在、私はまだこのMediaクラスライブラリを使用してRaspberry Piで作業しています

0
Alex

質問はもう少し古いですが、今日の時点で、Bellsoftから最新のJDKをダウンロードしてインストールすることもできます。これには、最新のJavaFXも含まれています。 https://www.bell-sw.com/pages/Java-11.0.2/

0
mipa