C'est tout à fait possible, mais devrait mieux fonctionner avec les nouvelles versions ayant plus de mémoire (par exemple la version 512 Mo du Pi). En décembre 2012, Oracle a publié un aperçu pour les développeurs de Java SE 8 pour ARM. Le billet de blog avec l'annonce contient des liens vers un certain nombre de didacticiels qui devraient vous permettre de démarrer avec Java SE ou JavaFX, en fonction de la fantaisie de vos interfaces.
- Guide rapide pour faire fonctionner Java Embedded sur Raspberry Pi
- JavaFX sur Raspberry Pi - 3 étapes faciles
Si vous êtes préoccupé par les performances de JavaFX sur le Raspberry Pi, consultez le billet de blog "JavaFX sur Raspberry PI", qui contient des informations sur les performances de JavaFX, en le comparant aux applications natives.
Mise à jour :résultats des tests après avoir exécuté Tomcat 7 avec Java 8 sur le Pi
Après avoir obtenu la version 512 Mo du Pi (MODELL B), j'ai installé Java 8 et Tomcat 7.0 sans aucun problème. Les exemples Tomcat fonctionnaient et j'ai pu utiliser l'application Tomcat Manager sans aucun problème.
Avec 64 Mo de RAM utilisés pour la carte graphique, j'avais encore 291 Mo de mémoire libre (avec sshd en cours d'exécution) :
[email protected] ~/ $ free -m
total used free shared buffers cached
Mem: 438 146 291 0 10 74
-/+ buffers/cache: 60 377
Swap: 99 0 99
pmap
a signalé un total de 192 Mo utilisés par le processus Tomcat.
Raspberry Pi n'a que 185 Mo disponibles pour l'ensemble de la JVM. (après le démarrage, avec 16 Mo pour le traitement vidéo).
Ensuite, vous devez utiliser des options de mémoire agressives et précises (-Xmx120M -XX:MaxPermSize=55M -XX:ReservedCodeCacheSize=4M -Djava.awt.headless=true
)
J'ai créé une application basée sur Jetty, Spring 3 et Hibernate/JPA. Juste après le déploiement, il tient dans environ 15 Mo d'espace Heap et 32 Mo d'espace non tas (en utilisant l'analyse de mémoire JProfiler)
Chaque classe chargée est une mémoire permanente perdue, car l'espace PermGen ne peut pas être ramassé. De nombreuses classes sont chargées uniquement pour la prise en charge de l'initialisation, mais resteront chargées pour toujours. Peut-être que des ajustements peuvent être trouvés pour consommer moins d'espace PermGen pour chaque composant.