Es ist absolut möglich, sollte aber mit neueren Versionen mit mehr Speicher (z. B. der 512-MB-Version des Pi) besser funktionieren. Im Dezember 2012 veröffentlichte Oracle eine Developer Preview von Java SE 8 für ARM. Der Blog-Beitrag mit der Ankündigung enthält Links zu einer Reihe von Tutorials, die Ihnen den Einstieg in reines Java SE oder JavaFX erleichtern sollen, je nachdem, wie ausgefallen Ihre Schnittstellen sein sollen.
- Quickie Guide Java Embedded zum Laufen bringen auf Raspberry Pi
- JavaFX auf Raspberry Pi – 3 einfache Schritte
Wenn Sie sich Sorgen über die Leistung von JavaFX auf dem Raspberry Pi machen, lesen Sie den Blog-Beitrag „JavaFX auf Raspberry PI“, der einige Informationen über die Leistung von JavaFX im Vergleich zu nativen Anwendungen enthält.
Update:Testergebnisse nach dem Ausführen von Tomcat 7 mit Java 8 auf dem Pi
Nachdem ich die 512-MB-Version des Pi (MODELL B) erhalten hatte, installierte ich Java 8 und Tomcat 7.0 ohne Probleme. Tomcat-Beispiele funktionierten, und ich konnte die Tomcat-Manager-Anwendung ohne Probleme verwenden.
Mit 64 MB RAM für die Grafikkarte hatte ich immer noch 291 MB freien Speicher (bei laufendem sshd):
[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
berichtet, dass insgesamt 192 MB vom Tomcat-Prozess verwendet werden.
Raspberry Pi hat nur 185 MB für die gesamte JVM zur Verfügung. (nach dem Booten, mit 16 MB zur Videoverarbeitung).
Dann müssen Sie aggressive und präzise Speicheroptionen verwenden (-Xmx120M -XX:MaxPermSize=55M -XX:ReservedCodeCacheSize=4M -Djava.awt.headless=true
)
Ich habe eine Anwendung basierend auf Jetty, Spring 3 und Hibernate/JPA erstellt. Unmittelbar nach der Bereitstellung passte es in etwa 15 MB Heap-Speicherplatz und 32 MB Nicht-Heap-Speicherplatz (unter Verwendung der JProfiler-Speicheranalyse)
Jede geladene Klasse ist permanenter Speicherverlust, da der PermGen-Speicherplatz nicht von der Garbage Collection erfasst werden kann. Viele Klassen werden nur zur Initialisierungsunterstützung geladen, bleiben aber für immer geladen. Vielleicht können tweeks gefunden werden, um weniger PermGen-Speicherplatz für jede Komponente zu verbrauchen.