Jak mogę uruchomić oprogramowanie Java?


35

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?


1
Zwróć uwagę, że OpenJDK nie ma jeszcze ARM JIT, co spowalnia działanie.
Thorbjørn Ravn Andersen

Wygląda na to, że ARM JIT firmy Oracle nie jest częścią OpenJDK.
Thorbjørn Ravn Andersen

Odpowiedzi:


15

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:

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

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.


11

Instalacja z repozytoriów powinna działać poprawnie na Debianie:

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

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.


3

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.


Teraz, sześć miesięcy później, czy masz praktyczne doświadczenie w robieniu tego na Malinie?
Thorbjørn Ravn Andersen

2

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



1

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ć:

sudo apt-get update
sudo apt-get install oracle-java8-jdk

0

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.


1
Ta javaflaga /proc/cpuinfooznacza, że ​​procesor obsługuje rozszerzenie Jazelle. Możesz o tym przeczytać na wikipedii .
Krzysztof Adamski

Problem z Jazelle polega na tym, że żadna z maszyn JVM typu open source nie może z niego korzystać.
Alex Chamberlain
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.