2014-09-04 16 views
5

Poiché javafx supporta Raspberry PI. Voglio eseguire l'applicazione FX nel frame buffer. Sto usando l'immagine del display LCD di Lubuntu.Esecuzione dell'applicazione JavaFX utilizzando l'errore framebuffer Cubieboard A10

Quando mi si tenta di eseguire un'applicazione JavaFX

java -Djavafx.platform=eglfb Hello.jar 

sto ottenendo il seguente errore

Sto usando java8 Hardfloat incorporato.

libEGL warning: DRI2: failed to authenticate 
eglCreateWindowSurface failed! eglGetError 12291 
eglMakeCurrent failed - 12288 
Failed to create EGLContextGraphics Device initialization failed for : es2 
Error initializing QuantumRenderer: no suitable pipeline found 
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found 
    at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:300) 
    at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244) 
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:179) 
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:214) 
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) 
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) 
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found 
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:98) 
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:128) 
    at java.lang.Thread.run(Thread.java:744) 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
Caused by: java.lang.RuntimeException: No toolkit found 
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:191) 
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:214) 
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) 
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) 
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) 
    ... 5 more 

Per favore aiutami a trovare una via d'uscita.

+1

Forse si vede questo http://stackoverflow.com/questions/21185156/javafx-on-linux-is-showing-a-graphics-device-initialization -failed-for-es2-s? –

+0

Grazie. Ci sto guardando. Ma non sono in grado di capire perché la libreria GTK ho bisogno di eseguire JavaFX sul frame buffer? –

risposta

2

Dopo un paio di ricerche, dovresti considerare di reinstallare OpenGL ES e forse anche GTK. C'è un problema durante l'inizializzazione e Java non può eseguire il rendering dell'applicazione.

Potrebbe essere un problema a partire dalla versione di Java utilizzata in fase di esecuzione che deve essere Java 8. Facciamo controllare la versione di default di Java usato dal proprio sistema:

ls -l /usr/lib/jvm 

Se non è la versione corretta, è possibile modificare con questo comando:

sudo update-alternatives --config java 

si può anche verificare che Java è accessibile con questo comando:

java -version 

È possibile avere maggiori informazioni con queste opzioni:

-Dprism.verbose=true -Dprism.debug=true -Djavafx.verbose=true -Djavafx.debug=true 
+0

Ma voglio usarlo senza GTK, solo con il supporto Framebuffer. Ho installato GLES mesa libs. Ma mostra sempre "nessuna pipeline idonea trovata" –

+0

Potrebbe essere un problema di versione Java, ho modificato la mia risposta. –

+0

Ma sto usando java 1.8 e -version è corretto, ed eseguo come '/ opt/software/jdk8/bin/java -version' lo stesso quando si esegue il file jar javafx. –