Java et Framboise314 - Librairies, Frameworks et API

Notre framboise peut faire tourner les applications Java. Comment faire, comment développer ces applications, et les failles de sécurité de java ? Parlez en ici...

Modérateur : Francois

Avatar du membre
vague nerd
Modérateur
Messages : 1464
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Java et Framboise314 - Librairies, Frameworks et API

Message par vague nerd » mer. 15 oct. 2014 11:33

Par ce qu'on ne vas par réinventer la roue à couper le beurre (enfin j'me comprend), autant s'appuyer sur la communauté raspberry PI en général et Framboise314 en particulier. Pour des problèmes récurrents, on peut espérer que la communauté dynamique y a déjà réfléchit. Elle propose peut-être déjà utilitaires, applications et composants (laissons ici de côté les tutoriaux et autres formations en ligne) permettant d'adresser la majeure partie des problèmes.

Plusieurs VM Java sont proposées pour notre Framboise, et quelques frameworks permettent aisément de l''animer (pour faire simple, un framework est ensemble de composants pré-packagés, apportant structure et fonctionnalités à de futurs applications, une VM java - Virtual Machine - est une machine émulée sur laquelle peut être exécuté un programme Java. Quelque soit la machine physique - PC Windows/PC Linux / Mac / Raspberry PI... - sur laquelle "tourne Java", la machine émulée est toujours la même, assurant qu'un programme écrit et compilé sur PC est exécutable sur PI, par exemple).

Je vous propose donc de faire part ici des librairies / composants / frameworks et autres API que vous avez utilisés pour résoudre vos problèmes particuliers, qui, n'en doutons pas, se poseront à d'autres. Je compilerai vos réponses ici.


Pi4J
Cette API promet de donner accès au développeur Java à toutes les fonctionnalités d'entrées/sorties de nos framboises. Le développeur ne s'occupe plus du détail technique et se concentre sur la logique métier ("l'intelligence") de l'application. Le site officiel http://pi4j.com/ dit :
"This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic."
Voici deux exemples d'usages concrets.

Allumer/eteindre une led branchée au GPIO 4 :

Code : Tout sélectionner

GpioPinDigitalOutput led1 = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04);
led1.toggle();
Obtenir une représentation Java d'un composant physique branché sur le bus I2C d'un PI revB, à l'adresse 0x52 :

Code : Tout sélectionner

I2CBus bus = I2CFactory.getInstance(1);
I2CDevice device = bus.getDevice(0x52);
Cordialement,

Vague Nerd

Avatar du membre
chakram
Messages : 12
Enregistré le : mar. 23 sept. 2014 22:12
Contact :

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par chakram » jeu. 16 oct. 2014 16:42

Bonne idée que ce post... J'avais envisagé la même chose puisque j'utilise java sur le pi. :twisted:

Par contre, Pi4j utilise-t-il la version "embedded" ou fonctionne-t-il sur le java SE classique (lequel est installable sur le pi) ?

++

Chak

Avatar du membre
vague nerd
Modérateur
Messages : 1464
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par vague nerd » jeu. 16 oct. 2014 17:56

Salut. Pi4J est une pure librairie Java. On peut l'utiliser sur la VM installée de son choix (pour te dire, j'ai mis la lib dans le classpath de ma machine window$ et je compile sous eclipse).

Téléchargement/installation :

Code : Tout sélectionner

wget http://pi4j.googlecode.com/files/pi4j-0.0.5.deb
sudo dpkg -i pi4j-0.0.5.deb
Désinstaller :

Code : Tout sélectionner

sudo dpkg -r pi4j
Compiler, lancer une appli

Code : Tout sélectionner

javac -classpath .:classes:/opt/pi4j/lib/'*' ...
sudo java -classpath .:classes:/opt/pi4j/lib/'*' ...
Choisir sa vm : (la VM sun/oracle est bien plus performante que la vm opensource)

Code : Tout sélectionner

update-java-alternatives -l
update-java-alternatives -s [nom du jdk donné par -l]
Vraiment que du bonheur !
"embedded" ou [...] java SE classique (lequel est installable sur le pi) ?
Je n'ai jamais connu de crash de la VM oracle...
Cordialement,

Vague Nerd

Avatar du membre
chakram
Messages : 12
Enregistré le : mar. 23 sept. 2014 22:12
Contact :

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par chakram » jeu. 16 oct. 2014 21:53

Re

Ok pour pi4j, de toute façon, je dois tester une fois quelques soudures réalisées...

Par contre, les interfaces sous JavaFX me semblent très lentes et parfois buggées. J'ai ainsi voulu utiliser la librairie Enzo proposée par Gerrit Grunwald (http://harmoniccode.blogspot.de/) et l'appli n'affiche rien ! Je vais tester quelque chose de différent mais c'est dommage car il existe pas mal de contrib pour JFX (JFXTras, controlsFX) qui redonnent un coup de jeune aux interfaces Java (Swing paraît préhistorique)...

Sinon, dans les contribs java intéressantes, il y a ce tuto (en anglais) très complet expliquant l'installation d'un JDK et l'exécution d'une application pour le PI : http://www.oracle.com/webfolder/technet ... section3s1

++

Chak

Avatar du membre
vague nerd
Modérateur
Messages : 1464
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par vague nerd » jeu. 16 oct. 2014 22:19

Swing est effectivement daté. Cependant, certains look & feel donnent de très bon résultats...
Par exemple (petite recherche sur google image) : http://www.centigrade.de/basic/resource ... reen04.png
Moi, j'utilise un l&f décédé : substance-6.3 et trident-6.3.
Cordialement,

Vague Nerd

syncitium
Messages : 14
Enregistré le : dim. 15 févr. 2015 14:56

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par syncitium » dim. 15 févr. 2015 15:02

pour chakram

le support javaFX sur ARM est abandonné (annonce faite début février 2015). Bye bye la réalisation de jauge assez sympa pour visualiser les mesures de capteurs via PI.

bien dommage

Avatar du membre
vague nerd
Modérateur
Messages : 1464
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par vague nerd » dim. 15 févr. 2015 16:22

le support javaFX sur ARM est abandonné
C'est bien dommage...

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
chakram
Messages : 12
Enregistré le : mar. 23 sept. 2014 22:12
Contact :

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par chakram » mer. 18 mars 2015 17:29

syncitium a écrit :pour chakram

le support javaFX sur ARM est abandonné (annonce faite début février 2015). Bye bye la réalisation de jauge assez sympa pour visualiser les mesures de capteurs via PI.

bien dommage
Je suis allé faire un tour et effectivement, ça semble avoir quand même pas mal surpris. De ce que j'en retiens c'est que le support ARM restera dispo via l'OpenJFX mais ça restera un truc supporté par la communauté même si Oracle semble accepter d'y contribuer.

Par contre, j'ai quand même l'impression que l'install sera un poil plus compliqué du coup qu'avant.

Quant à l'abandon lui même, je suis quand même surpris de la décision d'Oracle surtout quand on voit l'écosystème qui se développe autour des ARM : tablettes, IoT, pi & Co, etc... Cela donne l'impression que Java passe à côté de quelque chose d'autant que les seuls supports liés à ces écosystèmes (Androïd, iOS) découlent d'initiatives tierces comme la fameuse RoboVM.

Enfin, bref, à suivre et merci pour l'info.

Chakram

Avatar du membre
vague nerd
Modérateur
Messages : 1464
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par vague nerd » sam. 21 mars 2015 13:14

Bonsoir.

Un pavé dans la marre ? Je pense que ça sent le sapin pour java depuis le rachat par l'oracle du soleil.
Et à mon grand regret : je fais du java depuis toujours (le toujours du java : mon premier java -version à répondu 0.9b, avec un pote, on a contribué à la classe Vector).

Dès java 1.5/1.6, des libertés sont apparues allant à l'encontre de la philosophie du langage (par exemple, la caractéristique "langage fortement typé" s'est adoucie).
A mon sens, la qualité générale du code baisse au profit d'une soit disant meilleur "productivité".

J'attends l'émergence d'un successeur... avec une larme à l’œil.

Voilà pour mon humeur matinale ! (si, si, matinale :lol: )
Qu'en pensez vous ?

Cdt.
Cordialement,

Vague Nerd

Avatar du membre
chakram
Messages : 12
Enregistré le : mar. 23 sept. 2014 22:12
Contact :

Re: Java et Framboise314 - Librairies, Frameworks et API

Message par chakram » dim. 22 mars 2015 22:59

Bonsoir,

J'ai du mal à croire à une disparition de Java... J'ai commencé à bidouiller avec la v2 mais je suis vite passé à autre chose plus orienté web (PHP & Co) mais j'y suis revenu il y quelques années (v5). J'avoue que j'apprécie le langage plutôt rigoureux (même s'il l'est peut être moins qu'à ses débuts ;-)) mais il faut bien admettre qu'il faut pisser pas mal de code pour arriver à quelque chose d'où effectivement un petit problème de productivité.

J'apprécie l'initiative javafx qui évite de coder à la b*** et au couteau le moindre truc (ok j'exagère, il existait quelques API sympas pour swing) mais le client lourd n'a plus, à tort à mon sens, la même côte qu'auparavant... Du coup, l'idée d'un glissement vers des langages à tout faire genre js ne me semble pas impossible surtout avec toutes les briques qui se créent même côté serveur...

Je ne suis pas un pro dans le domaine donc, pour l'instant, je m'amuse avec Java et son JFX... L'avenir nous dira s'il faut passer à autre chose...

Dans tous les cas, le dév en JavaFX ne va pas être facilité avec la décision d'oracle.

Chak

Répondre

Retourner vers « Java »