Was ist der beste Weg, um Java-Code auf dem RP auszuführen? Funktioniert die Installation des OpenJDK von Debian / Fedora-Repos aus? Gibt es Optimierungen, die für eine verbesserte Leistung verwendet werden sollten? Gibt es auch eine "leichte" JVM für das RP, die besser / schneller läuft als die Standard-JVM von OpenJDK? Wenn ja, wie wird dies beschafft und installiert?
35
Antworten:
Für den "leichten" Teil Ihrer Frage gibt es eine Reihe kleinerer JVMs, die Sie in Betracht ziehen könnten.
Beispielsweise wurde JamVM ursprünglich für kleine Systeme wie das RP entwickelt, und sowohl es als auch Cacao (eine weitere kleinere JVM) sind als Pakete in Debian verfügbar:
Beide verwenden jedoch die Open-JDK-Klassenbibliotheken AFAIK und die Klassenbibliotheken, die den großen Teil (Platzbedarf) der Installation einer JRE ausmachen.
quelle
Die Installation aus den Repositories sollte unter Debian einwandfrei funktionieren:
Java scheint auf dem Arch Repo nicht verfügbar zu sein.
Kann jemand bitte mit Informationen für Fedora bearbeiten, ich habe keine Kenntnis von dieser Distribution.
quelle
Ich habe großes Interesse daran gesehen, verschiedene reduzierte JVMs auf Himbeer-Pi auszuführen, aber nur wenige Leute haben sich damit befasst, Java direkt in Maschinencode zu kompilieren. http://gcc.gnu.org/java/ hostet einen Compiler, der Ihnen Maschinencode aus Java oder Java-Bytecode geben kann. Das Projekt, für das ich gcj verwenden wollte, wurde verschrottet, bevor es in Betrieb genommen wurde, aber der Compiler wird als gut geeignet für eingebettete Systeme eingestuft, sodass es für den Himbeer-Pi genau richtig ist.
Auf halbem Weg nach unten die Seite in diesem Forum gibt es eine sehr schöne grafische Darstellung jemand gemacht , die relative Leistung der verschiedenen JVMs sowie gcj Vergleich http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Denken Sie daran, dass diese Benchmarks vor der drastischen Leistungssteigerung in der neuesten Raspbian Distribution erstellt wurden.
quelle
Es gibt keine speziellen Leicht JDK , die ich kenne, aber die normalen openjdk aus dem Repo scheinen zu funktionieren ok-ish für mich.
Ich sage ok - es gibt kein Problem mit der Funktionalität an sich, zumindest keines, das ich gefunden habe. Swing / AWT scheint auch gut zu funktionieren (ich habe JavaFX noch nicht ausprobiert). Die Leistung ist jedoch aufgrund fehlender JIT nicht besonders gut (siehe diese Frage ).
quelle
Oracle hat eine Version von Java 7 SE ohne Kopf auf den ARM für den Raspberry PI portiert. Ich habe Klassendateien von einigen meiner nicht auf EE-Konsolen basierenden Codes kopiert und sie funktionieren einwandfrei - aber ungefähr 9-mal langsamer als ein Pentium IV mit 3GHz. Siehe http://eclipsejpa.blogspot.ca/2012/10/java-se-7-embedded-on-raspberry-pi.html
http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
quelle
Oracle veröffentlichte Java 8 (und Java 7) für
ARM
. Verwenden Sie den Link von dieser Seite , um die aktuell beste Java-Version für Ihren Raspberry Pi zu erhalten.Dies sollte auch funktionieren:
quelle
Ich weiß nicht, wie es mit einer JVM funktioniert, aber ich weiß, dass der ARM-SoC auf dem Raspberry Pi den Java-Bytecode selbst ausführen kann.
Ich habe keinen Raspberry Pi, um JRE zu testen. Also spekuliere ich.
Verwenden Sie:
cat /proc/cpuinfo/
und prüfen Sie, ob Java den Raspberry Pi unterstützen kann.quelle
java
Flag in/proc/cpuinfo
bedeutet, dass die CPU die Jazelle-Erweiterung unterstützt. Sie können dies auf Wikipedia nachlesen .