Як запустити програмне забезпечення Java?


35

Який найкращий спосіб запустити Java-код на RP? Чи працює установка OpenJDK з репостів Debian / Fedora? Чи є налаштування, які слід використовувати для покращення продуктивності? Крім того, чи існує СП «легкої ваги» для RP, який працює краще / швидше, ніж стандартний JVM від OpenJDK? Якщо так, то як це отримується та встановлюється?


1
Зауважте, що OpenJDK ще не має ARM JIT, що робить його повільним.
Thorbjørn Ravn Andersen

Схоже, ARM JIT від Oracle не є частиною OpenJDK.
Thorbjørn Ravn Andersen

Відповіді:


15

Щодо "легкої" частини вашого запитання, ви можете розглянути декілька менших JVM.

Наприклад, JamVM спочатку був розроблений для роботи в таких маленьких системах, як RP, і він, і Cacao (інший менший JVM) доступні як пакети в debian:

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

хоча обидва використовують бібліотеки класів open-jdk AFAIK, а також його бібліотеки класів, які складають величезну частину (слід дискового сліду) встановлення JRE.


11

Установка з репозиторіїв повинна справно працювати на Debian:

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

Здається, Java не доступна в Arch Repo.

Чи може хтось, будь ласка, редагувати інформацію про Fedora, я не знаю про це дистрибутив.


3

Я бачив великий інтерес до запуску різних скорочених JVM, що працюють на малиновому пі, але мало хто намагався скласти Java прямо до машинного коду. http://gcc.gnu.org/java/ розміщує компілятор, який може надати машинний код від Java або з байтового коду Java. Проект, який я збирався використовувати gcj для того, що в кінцевому підсумку був знятий, перш ніж він зійшов з землі, але компілятор виставляється як добре підходить для вбудованих систем, тому він повинен добре відповідати малиновому пі.

На півдорозі сторінки на цьому форумі є дуже хороший графік, який хтось зробив, порівнюючи відносну продуктивність різних JVM, а також gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Майте на увазі, що ці орієнтири були зроблені ще до того, як різке підвищення продуктивності було включено до останнього розп’янського дистрибутива.


Тепер, через півроку, у вас є практичний досвід роботи з малиною?
Thorbjørn Ravn Andersen

2

Немає спеціальних легких JDK, про які я знаю, але звичайний openjdk від репо виглядає для мене нормально .

Я кажу добре-ish - немає жодної проблеми з функціональністю, принаймні жодної, яку я не знайшов. Сюди входять і головні програми, і Swing / AWT, здається, працює добре (ще не пробували JavaFX.) З іншого боку, продуктивність не є правильною через відсутність JIT (див. Це питання ).


2

Oracle мило переніс версію Java 7 SE без голові до ARM для Raspberry PI. Я скопіював файли класів з мого коду, що не базується на EE, і він працює чудово - але приблизно в 9 разів повільніше, ніж Pentium IV на 3 ГГц. див. http://eclipsejpa.blogspot.ca/2012/10/java-se-7-embedded-on-raspberry-pi.html

http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html


1

Oracle випустив Java 8 (та Java 7) для ARM. Скористайтеся посиланням на цій сторінці, щоб отримати найкращу в даний час версію Java для вашого Raspberry Pi.

Це також має працювати:

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

0

Я не знаю, як це працює з JVM, але я знаю, що ARM SoC на Raspberry Pi може запускати сам байт-код Java.

У мене немає Raspberry Pi для тестування на JRE. Тому я спекулюю.

Використовуйте: cat /proc/cpuinfo/і подивіться, чи може Java підтримувати Raspberry Pi.


1
Цей javaпрапор /proc/cpuinfoозначає, що ЦП підтримує розширення Jazelle. Про це ви можете прочитати на wikipedia .
Кшиштоф Адамський

Проблема Jazelle полягає в тому, що жоден із відкритих джерел JVM не може її використовувати.
Алекс Чемберлен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.