2015-02-02 13 views
5

Sto cercando di eseguire Esemble8.jar sul mio nuovo RaspBerry pi. Ho seguito questo tutorial: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPiFX/raspberryfx.htmlJavaFx Ensemble su Raspberry pi

sono stato in grado di installare Java8 ma quando provo a fare funzionare l'Ensemble8.jar (o qualsiasi altra piccola applicazione JavaFX) ho questo errore:

Error: Could not find or load main class ensemble.EnsembleApp 

Il mio percorso è corretta; hai qualche suggerimento per risolvere il problema?

Grazie!

+0

Quale versione JDK8 stai usando? –

+0

root @ raspberrypi: ~ # java -version versione java "1.8.0_33" Java (TM) SE Runtime Environment (build 1.8.0_33-b05) VM client Java HotSpot (build 25.33-b05, modalità mista – drenda

risposta

15

Dal momento che l'8u33 per la versione ARM, Oracle ha rimosso JavaFX dalla distribuzione ARM, come è stato annunciato here.

Potete leggere alcune dichiarazioni su questo in questi forum:

  • Raspberry Pi Forum (ora è offline)
  • OpenJFX Mailing list

Quindi non sarà in grado di eseguire qualsiasi applicazione JavaFX ... a meno che non si esegua il downgrade della versione all'ultimo JDK8u6 che supporta JavaFX oppure si fornisce un valido jfxrt.jar.

E lo si può fare seguendo questo tutorial, crossando OpenJFX per ARM, o semplicemente usando una distribuzione già costruita come questa one ospitata sul progetto JavaFXPorts.

Una volta scaricato armv6hf-sdk.zip, decomprimere e avete bisogno di aggiungere questa opzione riga di comando per collegare questa fonte esterna al classpath, con il meccanismo di estensione:

-Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext 

Per esempio, avete bisogno di questo per l'esecuzione uno dei vecchi campioni JavaFX dal suo percorso attuale:

sudo /opt/jdk1.8.0_33/bin/java -Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext -jar BrickBreaker.jar 
+3

Si può prendere in considerazione l'installazione (copia o collegamento simbolico) dei contenuti di 'rt/lib/ext' e' rt/lib/ext' direttamente nella JVM es .: '/ opt/jdk1.8.0_33/jre/lib/ext' e '/ opt/jdk1.8.0_33/jre/lib/arm' rispettivamente. Questo eliminerà la necessità di eseguire app con la direttiva '-Djava.ext.dirs = /rt/lib/ext' –

+1

Ho provato a scaricare' armv6hf-sdk.zip' e l'ho aggiunto al mio directory del progetto. Ho aggiunto "javafx-mx.jar", "jfxrt.jar" e "jfxswt.jar" alle mie librerie di progetto e nella directory di output. Tuttavia, il mio pi stil dice che non riesce a trovare la classe principale. –

+1

@ JoëlAbrahams Controlla questa [domanda] (http://stackoverflow.com/questions/40481455/running-javafx-gui-on-the-raspberry-pi/40483500#40483500) –