web-dev-qa-db-fra.com

JavaFX peut-il être utilisé sur Raspberry Pi?

Je souhaite écrire un programme pour Raspberry Pi à l'aide de JavaFX, mais il semble que Java SDK 8 sur mon Raspberry Pi ne prend pas en charge JavaFX. 

Ma question est donc de savoir si JavaFX est pris en charge sur Raspberry Pi 2/3? Si oui, pourquoi JDK n'a-t-il pas de bibliothèques JavaFX sur la plate-forme? Existe-t-il un moyen de le prendre en charge ou d’écrire une application JavaFX sur Raspberry Pi?

La version Java utilisée est 1.8.0_65.

12
Ahmed

pour certaines raisons, les liens ci-dessus ne fonctionnent pas, mais j'ai pu télécharger à partir de https://bitbucket.org/javafxports/arm/downloads/ puis décompresser le dossier et le copier. 

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 /

Redémarrez Raspberry Pi et FX Application a bien fonctionné

5
Gopi Krishna

Vous pouvez également télécharger des fichiers binaires pré-construits à partir de Gluon.

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

1
mipa

Oui, vous pouvez utiliser JavaFx.

Voici un script pour activer javafx sur Raspberry Pi (testé sur Raspbian Stretch)

#!/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

Oui, vous pouvez exécuter JavaFX sur Raspberry Pi, mais certaines bibliothèques de classes ne fonctionneront pas par défaut, comme exemple Media. Actuellement, j'essaie encore d'utiliser cette bibliothèque de classes Media pour travailler sur Raspberry Pi. 

0
Alex