Italian Raspberry P2 e Javafx

micro

Well-Known Member
Licensed User
Longtime User
Salve ragazzi, prima di iniziare a scrivere qualcosa chiedo se tra noi del gruppo oltre a me c'è qualcuno che sta usando o cercando di usare la Raspberry con b4j (applicazioni ui).
Ho da esporre alcuni problemi già riportati in altri thread ma senza risposta, forse non hanno gli stessi problemi.
Anzi, inizio a riportare qualcosa così vediamo come và:
Attualmente ho una raspi p2 con display ufficiale 7" con OS jessie.
Di default jessie ha java 1.8.0 rev b132 con javafx.
Se avvio un'applicazione scritta con b4j < alla 4.0 funziona tutto ma stranamente perdo il touch e leggendo in giro dicono che succede perchè javafx sposta l'input su un altro canale perdendo gli eventi e che bisogna passare ad una versione più recente di javafx.
Ho riaggiornato sempre sul raspberry la versione di java la 8u71 per arm (ultima ma senza javafx come ben sapete) e installato javafx di terze parti vedi gluon o openfx.
Risultato, funziona tutto anche con la versione b4j 4.1 compreso il touch ma cosa strana se mi metto in una textfield e clicco o sulla tastiera virtuale o su una keyboard esterna non mi scrive nessun carattere.
Ho perso tanto di quel tempo ma non ne riesco a venire a capo.
Possiamo vedere di venirne a capo?
Grazie.
 

marco.canta

Active Member
Licensed User
Longtime User
Ciao, sto iniziando anche io a utilizzare il Raspberry, fino ad ora o fatto solo app NON-UI, proprio oggi sto iniziando a provare a far girare app UI, ed ecco che scopro che non ce piu javaFX.
Leggendo il tuo post ho scoperto che quelli di terze parti (openfx) funzionano anche con B4J 4.01 ... ma per il momento non sono riuscito a trovare la laversione e la procedura per installarlo.
Mi puoi dare qualche suggerimento ?

Se riesco a far girare le app UI potrei trovarmi con la tua problematica e magari trovare la soluzione :)
 

micro

Well-Known Member
Licensed User
Longtime User
Ciao Marco
innanzitutto di dove sei?
Poi prima di iniziare a dirti qualcosa è meglio se mi dici cosa utilizzi come output grafico (Lcd touch o non touch, monitor...) perchè ci sono diverse alternative.
 

marco.canta

Active Member
Licensed User
Longtime User
Ciao Micro, io sono di Roma. Per il momento sto utilizzando un monitor HDMI in attesa di far funzionare il tutto e passare al LcdTouch da 7".

Ho installato (spero corretamente il OpenFX) ... seguendo alcuni tutorial e no creato una cartella JDK1.8 dove credo sia installati i file del OpenFX.



il comando con cui ho installato OpenFX:

unzip openjfx-8-sdk-overlay-linux-armv6hf.zip -d /home/pi/jdk1.8


e questo è il comando con cui dovrei mandare in esecuzione la mia app
/<pato to jdk1.8> /jre/bin/java -jar prova.jar

ma non funziona ...
la prima cosa strana che ho trovato è che all'inteno della cartella JDK1.8/jre non ce la cartella bin ...



... mi sto perdendo :)
 

marco.canta

Active Member
Licensed User
Longtime User
Se avvio il programma UI come avvio il programma NON-UI (che funzionano perfettamente) mi da i seguenti errori ...


B4X:
pi@raspberrypi:~/test $ dir
dataora.jar  mysql.jar  mysql_Tableview.jar  prova.jar  serialport.jar
pi@raspberrypi:~/test $ sudo java -jar mysql_Tableview.jar
Program started.
main._process_globals (java line: 87)
java.lang.NoClassDefFoundError: javafx/scene/control/Dialog
        at b4j.example.main._process_globals(main.java:87)
        at b4j.example.main.initializeProcessGlobals(main.java:78)
        at b4j.example.main.start(main.java:33)
        at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
        at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
        at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301                  )
        at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298                  )
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
        at com.sun.glass.ui.lens.LensApplication$RunnableEvent.dispatch(LensAppl                  ication.java:182)
        at com.sun.glass.ui.lens.LensApplication._runLoop(LensApplication.java:8                  60)
        at com.sun.glass.ui.lens.LensApplication.access$1800(LensApplication.jav                  a:58)
        at com.sun.glass.ui.lens.LensApplication$4.run(LensApplication.java:917)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: javafx.scene.control.Dialog
        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)
        ... 14 more

pi@raspberrypi:~/test $
 

micro

Well-Known Member
Licensed User
Longtime User
allora...
ti conviene scompattare la cartella di Openfx (openjfx-8-sdk-overlay-linux-armv6hf.zip) solo per comodità
nella stessa dir di java.
unzip openjfx-8-sdk-overlay-linux-armv6hf.zip -d <percorso jdk java>
Ricordati sempre di dare i permessi però se scompatti da root non dovresti avere problemi.
Quindi dopo potrai avviare il programma così:
<percorso jdk java>/bin/java -Djava.ext.dirs=<percorso openfx>/jre/lib/ext -jar test.jar
Se java è la versione di default nell'immagine jessie o whezzy (1.8.0 ver 183) che ha javafx non ti funziona con b4j >= 4.0
ma funziona bene se usi b4j3.7 che è quella che uso io per non avere problemi con alcuni lcd touch che trovi in circolazione.
Quindi se è la versione che trovi già nell'immagine puoi evitare di mettere i percorsi ma basta sudo java -jar ecc. ecc.
Anche se installi un nuovo pacchetto java puoi evitarlo con update-alternatives ma meglio non complicarti la vita e mettere
i percorsi giusti di java ed openfx.
 

marco.canta

Active Member
Licensed User
Longtime User
Grazie Micro ... proverò' quanto prima.
Si trova ancora la versione 3.7 di B4J da scaricare ?
 

marco.canta

Active Member
Licensed User
Longtime User
Arrivato oggi l'LCD 7 pollici "ufficiale" collegato e funziona (java 1.8 e OpenFX).
A parte un piccolo problema che mi rimane una piccola cornice nera intorno tutto ok !

Domani se riesco provo ad inserire una textfield e vedo che funziona o mi da il tuo stesso problema.

Ciao Marco.
 

micro

Well-Known Member
Licensed User
Longtime User
Arrivato oggi l'LCD 7 pollici "ufficiale" collegato e funziona (java 1.8 e OpenFX).
A parte un piccolo problema che mi rimane una piccola cornice nera intorno tutto ok !
Ok marco, quindi a quanto pare non hai lasciato la versione di java già presente nell'immagine ma hai installato una più recente(8u71?).
Mentre per la Openfx quella da me indicata ho la stable 8u40?
Come immagine la raspbian wheezy o Jessy?
Fammi sapere se tutto funziona.
 

marco.canta

Active Member
Licensed User
Longtime User
Ciao Micro ... eccomi con un po di prove fatte ...
Allora io monto Noobs, java 1.8.0 e OpenJFX (nella stessa directory di java).

Funziona tutto, solo qualche problemino di autorizzazioni che non so come dare, e per risolvere al momento lancio l'app dalla root, altrimenti parte il programma ma non funziona il touch.
Per lanciare il programma ... da root ... java -jar NomeProgramma.jar
Da touch selezione il campo textfield e da tastiera(esterna) digito i valori e appaiono nel textfield.

Se ti servono altre info fammi sapere.

Marco.
 

marco.canta

Active Member
Licensed User
Longtime User
Al momento sto combattendo con la rotazione la rotazione dello schermo e touch di 90 gradi, o meglio a ruotare di 90 gradi lo schermo non ho problemi ... il problema è il touch !

Se utilizzo LCD_rotate=2 giro di 180 gradi e funziona tutto, se metto altri valori alterna solo di 180 gradi.
Se invece uso display_rotate = 1 (90 gradi) ... gira lo schermo ma non il touch.

Hai info in merito ?

Ciao Marco.
 

micro

Well-Known Member
Licensed User
Longtime User
Ciao Micro ... eccomi con un po di prove fatte ...
Allora io monto Noobs, java 1.8.0 e OpenJFX (nella stessa directory di java).
Quindi presumo Raspbian jessie.
Come OpenJFX la stabile 8U40 oppure l'altra?
E come B4j sempre l'ultima oppure la 3.7?

Mi dispiace ma per la rotazione non posso aiutarti, non mi è mai servito ruotare lo schermo quindi non ho info in merito.
 
Top