Comment puis-je exécuter un logiciel Java?


35

Quel est le meilleur moyen d’exécuter du code Java sur le RP? L’installation d’OpenJDK à partir du dépôt Debian / Fedora fonctionne-t-elle correctement? Existe-t-il des modifications à utiliser pour améliorer les performances? En outre, existe-t-il une JVM "légère" disponible pour le RP qui fonctionne mieux / plus vite que la JVM standard d'OpenJDK? Si oui, comment est-ce obtenu et installé?


1
Notez qu'OpenJDK n'a pas encore de JIT ARM, ce qui le ralentit.
Thorbjørn Ravn Andersen

Il semble que le fichier ARM JIT d’Oracle ne fasse pas partie de l’OpenJDK.
Thorbjørn Ravn Andersen Le

Réponses:


15

Pour la partie "légère" de votre question, vous voudrez peut-être envisager un certain nombre de machines virtuelles plus petites.

Par exemple, JamVM a été conçu à l’origine pour fonctionner dans de petits systèmes tels que le RP, et Cacao (une autre JVM plus petite) est disponible sous forme de paquets dans debian:

icedtea-7-jre-jamvm
icedtea-7-jre-cacao

bien que les deux utilisent les bibliothèques de classes open-jdk AFAIK et ses bibliothèques de classes qui constituent la partie la plus importante (en termes d’empreinte disque) de l’installation d’un JRE.


11

L'installation à partir des référentiels devrait fonctionner correctement sur Debian:

sudo apt-get clean
sudo apt-get update
sudo apt-get install openjdk-6-jre

Java ne semble pas être disponible sur le référentiel Arch.

Quelqu'un peut-il s'il vous plaît éditer avec des informations pour Fedora, je n'ai aucune connaissance de cette distribution.


3

J'ai constaté un vif intérêt pour l'utilisation de diverses machines virtuelles Java compressées fonctionnant sous framboise pi, mais peu de personnes se sont penchées sur la compilation de Java directement en code machine. http://gcc.gnu.org/java/ héberge un compilateur qui peut vous donner du code machine à partir de java ou du code octet java. Le projet que j'allais utiliser pour utiliser gcj a finalement été abandonné avant qu'il ne soit lancé, mais le compilateur est présenté comme un bon choix pour les systèmes embarqués, il devrait donc convenir à la framboise pi.

Au milieu de la page de ce forum, vous trouverez un très beau graphique comparant les performances relatives de différentes machines virtuelles ainsi que de gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . N'oubliez pas que ces repères ont été définis avant l'augmentation drastique des performances incluse dans la dernière distribution raspbian.


Maintenant, six mois plus tard, avez-vous une expérience pratique de cette opération sur la framboise?
Thorbjørn Ravn Andersen Le

2

Je ne connais pas de JDK léger spécial, mais l’openjdk normal du repo semble fonctionner correctement pour moi.

Je dis ok-ish - il n'y a pas de problème de fonctionnalité en soi, du moins aucun de ceux que j'ai trouvés. Swing / AWT semble également bien fonctionner (je n’ai pas essayé JavaFX.) En revanche, les performances n’ont rien de vraiment médiocre en raison d’un manque de JIT (voir cette question ).



1

Oracle a publié Java 8 (et Java 7) pour ARM. Utilisez le lien de cette page pour obtenir la meilleure version Java pour votre Raspberry Pi.

Cela devrait également fonctionner:

sudo apt-get update
sudo apt-get install oracle-java8-jdk

0

Je ne comprends pas comment cela fonctionne avec une machine virtuelle, mais je sais que le SoC ARM sur le Raspberry Pi peut exécuter le bytecode Java lui-même.

Je n'ai pas le Raspberry Pi pour tester JRE. Alors je spécule.

Utilisez: cat /proc/cpuinfo/et voyez si Java pourrait supporter le Raspberry Pi.


1
Cet javaindicateur /proc/cpuinfosignifie que le processeur prend en charge l'extension Jazelle. Vous pouvez lire à ce sujet sur wikipedia .
Krzysztof Adamski

Le problème avec Jazelle est qu’aucune des JVM open source ne peut l’utiliser.
Alex Chamberlain
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.