Wie kann ich Java-Software ausführen?

35

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?

Darren Wilkinson
quelle
1
Beachten Sie, dass OpenJDK noch kein ARM-JIT hat, was es langsam macht.
Thorbjørn Ravn Andersen
Es scheint, dass das ARM JIT von Oracle nicht Teil des OpenJDK ist.
Thorbjørn Ravn Andersen

Antworten:

15

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:

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

Beide verwenden jedoch die Open-JDK-Klassenbibliotheken AFAIK und die Klassenbibliotheken, die den großen Teil (Platzbedarf) der Installation einer JRE ausmachen.

Maks
quelle
11

Die Installation aus den Repositories sollte unter Debian einwandfrei funktionieren:

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

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.

Jivings
quelle
3

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.

Dan B
quelle
Haben Sie nun, ein halbes Jahr später, praktische Erfahrung damit, dies auf der Himbeere zu tun?
Thorbjørn Ravn Andersen
2

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 ).

berry120
quelle
1

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:

sudo apt-get update
sudo apt-get install oracle-java8-jdk
Simulant
quelle
0

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.

Ranomier
quelle
1
Dieses javaFlag in /proc/cpuinfobedeutet, dass die CPU die Jazelle-Erweiterung unterstützt. Sie können dies auf Wikipedia nachlesen .
Krzysztof Adamski
Das Problem mit Jazelle ist, dass keine der Open-Source-JVMs es verwenden kann.
Alex Chamberlain