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.