Jaki jest najlepszy sposób na uruchomienie kodu Java na RP? Czy instalacja OpenJDK z repozytoriów Debian / Fedora działa poprawnie? Czy są jakieś poprawki, które należy zastosować w celu poprawy wydajności? Czy jest też dostępna „lekka” JVM dla RP, która działa lepiej / szybciej niż standardowa JVM z OpenJDK? Jeśli tak, w jaki sposób jest to uzyskiwane i instalowane?
35
Odpowiedzi:
W przypadku „lekkiej” części pytania istnieje kilka mniejszych maszyn JVM, które warto rozważyć.
Na przykład JamVM został pierwotnie zaprojektowany do pracy w małych systemach, takich jak RP, i zarówno on, jak i Cacao (inny mniejszy JVM) są dostępne jako pakiety w debian:
chociaż oba używają bibliotek AFAIK typu open-jdk, a także bibliotek klas, które są ogromną częścią (jeśli chodzi o powierzchnię dysku) instalacji środowiska JRE.
źródło
Instalacja z repozytoriów powinna działać poprawnie na Debianie:
Wydaje się, że Java nie jest dostępna w repozytorium Arch.
Czy ktoś może edytować informacje o Fedorze, nie mam wiedzy o tej dystrybucji.
źródło
Widziałem duże zainteresowanie uruchomieniem różnych skróconych JVM działających na raspberry pi, ale niewiele osób zastanawiało się nad kompilacją kodu Java bezpośrednio do kodu maszynowego. http://gcc.gnu.org/java/ obsługuje kompilator, który może dać ci kod maszynowy z java lub z kodu bajtu java. Projekt, w którym miałem zamiar użyć gcj, został skazany na upadek, zanim spadł z ziemi, ale kompilator jest rozliczany za dobre dopasowanie do systemów osadzonych, więc powinien dobrze pasować do Raspberry Pi.
W połowie strony tego forum znajduje się bardzo ładny wykres, który ktoś porównał względną wydajność różnych JVM, a także gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Należy pamiętać, że te testy porównawcze zostały wprowadzone przed drastycznym wzrostem wydajności zawartym w najnowszej dystrybucji Raspbian.
źródło
Nie znam specjalnego lekkiego JDK, o którym wiem, ale normalny openjdk z repozytorium wydaje mi się w porządku .
Mówię ok-ish - nie ma problemu z samą funkcjonalnością, a przynajmniej żadną, którą znalazłem. Obejmuje to aplikacje headful, Swing / AWT również wydaje się działać dobrze (nie wypróbowałem JavaFX.) Z drugiej strony wydajność nie jest niczym dobrym ze względu na brak JIT (patrz to pytanie ).
źródło
Oracle łaskawie przeniósł wersję Java 7 SE bezgłową do ARM dla Raspberry PI. Skopiowałem pliki klas z mojego kodu nie opartego na konsoli EE i działa dobrze - ale około 9 razy wolniej niż Pentium IV w 3GHz. patrz http://eclipsejpa.blogspot.ca/2012/10/java-se-7-embedded-on-raspberry-pi.html
http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
źródło
Oracle wydało Java 8 (i Java 7) dla
ARM
. Użyj linku z tej strony, aby uzyskać najlepszą obecnie wersję Java dla Raspberry Pi.Powinno to również działać:
źródło
Nie wiem, jak to działa z JVM, ale wiem, że ARM SoC na Raspberry Pi może uruchomić sam kod bajtowy Java.
Nie mam Raspberry Pi do testowania środowiska JRE. Więc spekuluję.
Użyj:
cat /proc/cpuinfo/
i sprawdź, czy Java może obsługiwać Raspberry Pi.źródło
java
flaga/proc/cpuinfo
oznacza, że procesor obsługuje rozszerzenie Jazelle. Możesz o tym przeczytać na wikipedii .