2016-06-29 21 views
6

So che Oracle ha rimosso JavaFX in 8u33, ma mi chiedo perché non riesca a utilizzare JavaFX con jdk1.8.0? Ho preso dagli archivi di Oracle (http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)JavaFX su ARM con jdk1.8.0

ho questa estratti in /usr/bin/java_8_arm/jdk1.8.0 e sto facendo funzionare il mio file .jar con sudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar

Esecuzione /usr/bin/java_8_arm/jdk1.8.0/bin/java -version rendimenti

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) 

e in esecuzione System.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());

restituisce Running Java Version: 1.8.0

L'errore che sto ottenendo è:

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 

Se vi state chiedendo, sto programmando e la compilazione del programma a un file condiviso tramite Windows 7 e l'esecuzione del JAR da un Raspberry Pi.

inb4 "perché è necessario javafx su un raspberry pi" - per eseguire il rendering di html, poiché altri componenti java supportano solo html 3.2. Ho provato altri renderer. Questo è l'unico che potrei persino lavorare direttamente sul mio desktop, per non parlare del RPi.

Inoltre, sto programmando e compilando anche su 1.8.0.

UPDATE:

Come per la risposta di José Pereda, Ho scaricato il file di JavaFX e messo nel mio java di installazione originale (ora sto usando /usr/bin/jdk8u6/ come la mia cartella e ovviamente jdk1.8.0_06).

Qui è la mia gerarchia di installare, a partire dalla directory 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 

ho ancora ottenere lo stesso errore.

risposta

3

È possibile scaricare una versione aggiornata e aggiornata di JavaFX per ARM da qui: JavaFX Embedded SDK

Una volta scaricato sul vostro Raspberry Pi, è necessario estrarre e copiare il contenuto nella vostra JDK 1.8 (controllare questo link per inserito).

È possibile eseguire l'ultima versione JavaFX per ARM * sul Pi, incluso il controllo WebView.

Inoltre, utilizzando il plug-in Gluon per l'IDE, sarà possibile distribuire il progetto remotely anche sul Pi.

EDIT

* ARM: Si noti che JavaFX per ARM non ha mai sostenuto Swing. Altre funzionalità come WebView e Media non erano supportate, ma recentemente sono state incluse nella build di Gluon.

+0

Grazie per la distribuzione in remoto, potrei utilizzarlo. Per il resto, testare ora – zfollette

+0

non ha funzionato. Aggiornamento dell'OP – zfollette

+1

Ah, ho dimenticato di menzionare: Swing non è mai stato supportato in JavaFX per ARM, ma dal momento che stai usando JavaFX con una WebView, puoi usarlo? –