JavaFX auf ARM mit jdk1.8.0
Ich weiß, dass Oracle JavaFX in 8u33 entfernt hat, aber ich frage mich, warum ich JavaFX nicht mit jdk1.8.0 verwenden kann. Ich habe es aus den Oracle-Archiven http: //download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.g)
Ich habe dies in @ extrahie/usr/bin/java_8_arm/jdk1.8.0
und starte meine .jar-Datei mitsudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar
Laufen/usr/bin/java_8_arm/jdk1.8.0/bin/java -version
kehrt zurüc
java version "1.8.0"
Java (TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot (TM) client VM (build 25.0-b70, mixed mode)
und läuftSystem.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());
kehrt zurückRunning Java Version: 1.8.0
Der Fehler, den ich erhalte, ist:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
at front_end.GUI.initGUI(GUI.java:47)
at back_end.Run.main(Run.java:28)
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
Wenn Sie sich fragen, programmiere und kompiliere ich das Programm über Windows 7 in eine freigegebene Datei und starte die JAR von einem Raspberry Pi aus.
inb4 "warum brauchst du javafx auf einem himbeer pi" - um html zu rendern, da andere java komponenten nur html 3.2 unterstützen. Ich habe andere Renderer ausprobiert. Dies ist die einzige, mit der ich überhaupt direkt auf meinem Desktop arbeiten kann, geschweige denn mit dem RPi.
Auch ich programmiere und kompiliere auf 1.8.0.
AKTUALISIEREN
Als Antwort von José Pereda habe ich die JavaFX-Dateien heruntergeladen und in meine ursprüngliche Java-Installation eingefügt (ich verwende jetzt/usr/bin/jdk8u6/
als mein Ordner und natürlichjdk1.8.0_06
).
Hier ist meine Installationshierarchie, beginnend mit demlib
Verzeichnis
/usr/bin/jdk8u6/lib/:
arm ext javafx.properties jfxswt.jar tools.jar
ct.sym ir.idl jconsole.jar orb.idl
dt.jar javafx.platform.properties jexec sa-jdi.jar
/usr/bin/jdk8u6/lib/arm:
jli libgstreamer-lite.so libjfxmedia.so
libdecora_sse.so libjavafx_font_freetype.so libjfxwebkit.so
libfxplugins.so libjavafx_font_pango.so libprism_common.so
libglass_monocle.so libjavafx_font.so libprism_es2_eglfb.so
libglass_monocle_x11.so libjavafx_iio.so libprism_es2_monocle.so
libglass.so libjawt.so libprism_sw.so
/usr/bin/jdk8u6/lib/arm/jli:
libjli.so
/usr/bin/jdk8u6/lib/ext:
jfxrt.jar
Ich erhalte immer noch den gleichen Fehler.