JavaFX на ARM под управлением jdk1.8.0
Я знаю, что Oracle удалил JavaFX в 8u33, но мне интересно, почему я не могу использовать JavaFX с jdk1.8.0? Я получил это из архивов Oracle (http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)
Я извлек это в/usr/bin/java_8_arm/jdk1.8.0
и я запускаю мой .jar файл сsudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar
Бег/usr/bin/java_8_arm/jdk1.8.0/bin/java -version
возвращается
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)
и работаетSystem.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());
возвращаетсяRunning Java Version: 1.8.0
Я получаю ошибку:
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
Если вам интересно, я программирую и компилирую программу в общий файл через Windows 7 и запускаю JAR из Raspberry Pi.
inb4 "зачем вам нужен javafx на малиновом пи" - для рендеринга html, так как другие компоненты java поддерживают только html 3.2. Я пробовал другие рендеры. Это единственное, что я мог даже работать прямо на своем рабочем столе, не говоря уже о RPi.
Кроме того, я программирую и компилирую на 1.8.0.
ОБНОВИТЬ:
Согласно ответу Хосе Переда, я скачал файлы JavaFX и поместил их в мою первоначальную установку Java (сейчас я использую/usr/bin/jdk8u6/
как моя папка, и, очевидно,jdk1.8.0_06
).
Вот моя иерархия установки, начиная сlib
каталог:
/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
Я все еще получаю ту же ошибку.