wake-up-neo.com

Kann JavaFX auf Raspberry Pi verwendet werden

Ich möchte ein Programm für Raspberry Pi schreiben, das JavaFX verwendet, aber Java SDK 8 auf meinem Raspberry Pi scheint JavaFX nicht zu unterstützen. 

Meine Frage ist also, ob JavaFX auf Raspberry Pi 2/3 unterstützt wird. Wenn ja, warum hat JDK keine JavaFX-Bibliotheken auf der Plattform? Gibt es eine Möglichkeit, dies zu unterstützen, oder lohnt es sich, die JavaFX-Anwendung auf Raspberry Pi zu schreiben?

Die verwendete Java-Version ist 1.8.0_65.

12
Ahmed

Wenn Sie Oracle JDK for ARM 8u33 / Oracle Java SE Embedded 8u33 oder höher verwenden, finden Sie JavaFX nicht im JDK. Oracle hat JavaFX Embedded ab 8u33 aus dem ARM - Paket entfernt. Weitere Informationen finden Sie in diesem Thread aus der OpenJFX-Mailingliste .

Können wir JavaFX weiterhin für Raspberry PI verwenden?

Natürlich können Sie. Hier können Sie JavaFX auf eingebetteten Geräten ausführen:

  1. Am besten ist es, das eingebettete SDK zu installieren, das von Gluon bereitgestellt wird, einschließlich jfxrt.jar für ARM. Sie können die Dose in das JDK kopieren und JavaFX auf Raspberry Pi ausführen. Gluon erweitert den Support weiter, indem es den Benutzern hilft, das JavaFX-Plugin über das Plugin bereitzustellen. Schauen Sie sich an:

  2. Sie können eine frühere Version von Oracle JDK verwenden, in der JavaFX gebündelt ist. 
  3. Sie können OpenJFX auch erstellen und zu Ihrem JDK hinzufügen (kein einfacher Weg).

Wenn Sie mehr über JavaFX in Embedded erfahren möchten, sind hier einige nützliche Links:

16
ItachiUchiha

aus einigen Gründen funktionieren die oben genannten Links nicht, aber ich konnte sie von https://bitbucket.org/javafxports/arm/downloads/- herunterladen und dann den Ordner entpacken und kopieren 

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 /

Starten Sie Raspberry Pi neu und die FX-Anwendung hat gut funktioniert

5
Gopi Krishna

Sie können auch vorinstallierte Binärdateien von Gluon herunterladen.

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

1
mipa

Ja, Sie können JavaFx verwenden.

Hier ist ein Skript zum Aktivieren von Javafx auf Raspberry Pi (getestet auf 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

Ja, Sie können JavaFX auf dem Raspberry Pi ausführen, einige Klassenbibliotheken funktionieren jedoch standardmäßig nicht, wie zum Beispiel Media. Derzeit versuche ich immer noch, diese Medienklassenbibliothek für die Arbeit mit Raspberry Pi zu verwenden 

0
Alex

Die Frage ist schon etwas alt, aber ab heute könnte man auch das neueste JDK von Bellsoft herunterladen und installieren, das auch den neuesten JavaFX enthält . https://www.bell-sw.com/pages/Java- 11.0.2/

0
mipa