2016-06-29 20 views
6

Wiem, że Oracle usunął JavaFX w 8u33, ale zastanawiam się, dlaczego nie mogę używać JavaFX z jdk1.8.0? Dostałem go z archiwum Oracle (http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)JavaFX na ARM działającym jdk1.8.0

mam ten wydobytych w /usr/bin/java_8_arm/jdk1.8.0 i używam mój plik .jar z sudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar

Running /usr/bin/java_8_arm/jdk1.8.0/bin/java -version powraca

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) 

i uruchomione System.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());

zwraca Running Java Version: 1.8.0

Błąd Dostaję jest:

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 

Jeśli zastanawiasz się, jestem programowania i kompilacji programu do udostępnionego pliku poprzez Windows 7 i działa JAR z malin Pi.

inb4 "dlaczego potrzebuję javafx na raspberry pi" - do renderowania html, ponieważ inne komponenty java obsługują tylko html 3.2. Próbowałem innych renderers. Jest to jedyna, którą mogę nawet uruchomić na moim pulpicie, nie mówiąc już o RPi.

Programuję również i kompiluję w wersji 1.8.0.

UPDATE:

Jak na odpowiedź José Pereda, w Pobrałem pliki JavaFX i umieścił je w moim oryginalnym java zainstalować (jestem teraz za pomocą /usr/bin/jdk8u6/ jako mojego folderu i oczywiście jdk1.8.0_06).

Oto moja zainstalować hierarchia, począwszy od katalogu 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 

wciąż otrzymuję ten sam błąd.

Odpowiedz

3

Można pobrać zaktualizowaną i ulepszoną wersję JavaFX dla ARM stąd: JavaFX Embedded SDK

Po pobraniu na Raspberry Pi, trzeba wyodrębnić i skopiować zawartość do swojego JDK 1.8 (sprawdź to na link osadzone).

Będziesz mógł uruchomić najnowszą wersję JavaFX dla ARM * na swoim Pi, w tym kontrolkę WebView.

Ponadto, używając wtyczki Gluon do swojego IDE, będziesz mógł wdrożyć projekt remotely również na twoim Pi.

EDIT

* ARM: Zauważ, że JavaFX dla ARM nie wspiera Swing. Inne funkcje, takie jak WebView i Media, również nie były obsługiwane, ale ostatnio zostały uwzględnione w kompilacji Gluon.

+0

Dzięki za trochę o zdalnym rozmieszczaniu, mógłbym użyć tego. Co do reszty, testowanie teraz – zfollette

+0

Nie działa. Aktualizowanie OP – zfollette

+1

Ach, zapomniałem wspomnieć: Swing nigdy nie był obsługiwany w JavaFX dla ARM, ale ponieważ używasz JavaFX z WebView, możesz go użyć? –

Powiązane problemy