OpenJDK kompilerar och körs på Pi framgångsrikt, men den enda versionen jag hittat är en utan JIT. Oracle tillhandahåller en sådan JDK för andra versioner av ARM, men inte ARMv6. Finns det något sätt att få en sådan version av JDK igång under tiden?
OpenJDK kompilerar och körs på Pi framgångsrikt, men den enda versionen jag hittat är en utan JIT. Oracle tillhandahåller en sådan JDK för andra versioner av ARM, men inte ARMv6. Finns det något sätt att få en sådan version av JDK igång under tiden?
Oracle har nu släppt (från och med Java 7u6) en JDK med JIT som fungerar på Pi med fullt AWT / Swing-stöd. Det stöder också JVMTI (kakao har endast delvis stöd.) Pressmeddelande här.
Jag har verifierat att det fungerar med Greenfoot och ger en enorm hastighet jämfört med sådana som en vanlig (icke-JIT) OpenJDK-byggnad.
I skrivande stund stöder den inte hård flytpunkt och fungerar därför inte med distributioner som Raspbian som bara använder hård float - detta är dock planerat för en framtida release.
UPPDATERING: Som Darren påpekade har nu en hard float-version släppts för ARM i form av en JDK8-förhandsvisning släpp, du hittar den här.
UPPDATERING 2: Hård float stöds nu i JDK7.
icedtea-6-jre-cacao -paketet innehåller en JIT-kompilator och enligt uppgift fungerar på RasPi.
Jag har inte provat det mig själv.
Oracle har nu släppt en förhandsgranskning av Java JDK8 för ARM för utvecklare som specifikt innehåller stöd för Raspbian på PI. Det fungerar, och jag har funnit att det är cirka 20 gånger snabbare än OpenJDK för vissa flytande punktintensiva beräkningar. http://jdk8.java.net/fxarmpreview/
På Rasbian kan du använda JamVM som innehåller en "kodkopiering-JIT"
apt-get install icedtea-7-jre-jamvm
JamVM är för närvarande den snabbaste och mest stabila JVM som inkluderar en JIT på Rasbian.
Avian stöds också på Rasbian som också innehåller en JIT. Du måste bygga den manuellt: http: / /labb.zafena.se/?p=630
Jag förväntar mig att Avian ska visas på Raspbian när den har byggts från Debian SID-källa. Avian finns för närvarande i Debian SID-experiment i paketet jvm-7-avian-jre
.
Både Avian och JamVM fungerar i kombination med OpenJDK-7-klasserna så att du kan använda dem både för att påskynda alla java-startare som javac och java. filen /etc/java-7-openjdk/jvm-armhf.cfg
bestäm vilken JVM som används som standard i openjdk 7 på Rasbian.
Du kan också berätta för java-startarna individuellt vilken jvm som ska användas:
java -jamvmjavac -J-jamvm
Oracle släppte den fullständiga versionen (inte längre förhandsgranskning) av Java 8 och Java 7 för ARM-arkitekturen i Raspberry Pi: länk till Java 8.
Du kan också använd från kommandoraden:
sudo apt-get updatesudo apt-get install oracle-java8-jdk
Det är möjligt att kombinera OpenJDK 7 med JVM från Java JDK8 som inkluderar en JIT för att få en installation med X11-stöd och Swing / AWT fungerar.
JNI-gränssnittet, med "Classpath" -undantag, separera tydligt JVM- och runtime-miljöklasserna. Om du använder klienthotspot (jre / lib / arm / client / libjvm.so) från förhandsgranskningen JavaFX 8 i kombination med de Rasbian-kompilerade OpenJDK 7 Runtime-miljöklasserna och Java-startare (/ usr / lib / jvm / java-7- openjdk-armhf) får du följande inställningar och fördelar:
Inställning:
Ladda ner jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz från http://jdk8.java.net/fxarmpreview/ index.html
# Installera openjdk-7 och icedtea-webbläsar-pluginsudo apt-get install openjdk-7-jdk icedtea-7-plugin # Extrahera Oracle Client Hotspot JVM från förhandsgranskningen JavaFX 8 --extract --verbose --fil = jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz jdk1.8.0 / jre / lib / arm / client # Placera klientens hotspot dir som innehåller libjvm.so inuti OpenJDK 7 jre / lib / arm mappar sudo mv jdk1.8.0 / jre / lib / arm / client / usr / lib / jvm / java-7-openjdk-armhf / jre / lib / arm / oracle # Konfigurera OpenJDK Runtime för att använda Oracle-klienten Hotspot JVM dir # Detta sed-kommando placerar -oracle KNOWN vid första raden i jvm-armhf.cfgsudo sed -i -e "1i \\ - oracle KNOWN" / etc / java-7-openjdk / jvm-armhf.cfgjava -versionjava version "1.7.0_07" < --- Detta är OpenJDK 7-uppdateringsversionen OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1 + rpi1 ) < --- Detta är OpenJDK 7 Runtime-version Java HotSpot (TM) Client VM (bygg 25.0-b04, blandat läge) < --- Detta är Oracle Client Hotspot JVM-version