OpenJDK збирається і працює на Pi успішно, але єдина версія, яку я знайшов, - це версія без JIT. Oracle надає такий JDK для інших версій ARM, але не для ARMv6. Чи є якийсь спосіб запустити таку версію JDK та запустити її тим часом?
OpenJDK збирається і працює на Pi успішно, але єдина версія, яку я знайшов, - це версія без JIT. Oracle надає такий JDK для інших версій ARM, але не для ARMv6. Чи є якийсь спосіб запустити таку версію JDK та запустити її тим часом?
Відповіді:
Зараз Oracle випустив (на Java 7u6) JDK з JIT, який працює на Pi з повною підтримкою AWT / Swing. Він також підтримує JVMTI (у какао є лише часткова підтримка.) Прес-реліз тут .
Я переконався, що він працює з Greenfoot і забезпечує величезну швидкість порівняно з подібними до простої (не-JIT) збірки OpenJDK.
На момент написання він не підтримує жорстку плаваючу точку, і тому не буде працювати з дистрибутивами, такими як Raspbian, які використовують лише жорсткий флоат - це, однак, планується для майбутнього випуску.
ОНОВЛЕННЯ: Як зазначив Даррен, тепер для ARM випущена версія з твердим плаваючим файлом у вигляді попереднього випуску JDK8, ви можете знайти її тут .
ОНОВЛЕННЯ 2: Тепер у JDK7 підтримується жорсткий поплавок.
The icedtea-6-jre-cacao містить компілятор JIT і, як повідомляється, працює над RasPi .
Я сам цього не пробував.
Зараз Oracle випустив попередній перегляд розробника Java JDK8 для ARM, який спеціально включає підтримку твердоплавного Raspbian на Pi. Це працює, і я виявив, що це в 20 разів швидше, ніж OpenJDK для певних обчислень з плаваючою точкою. http://jdk8.java.net/fxarmpreview/
На Rasbian ви можете використовувати JamVM, який включає в себе "копіювання коду-JIT"
apt-get install icedtea-7-jre-jamvm
На даний момент JamVM - це найшвидший і стабільний JVM, який включає JIT на Rasbian.
Пташиний також підтримується на Rasbian, який також включає JIT. Створити його доведеться вручну: http://labb.zafena.se/?p=630
Я очікую, що Avian з'явиться в Raspbian, коли він побудований з джерела Debian SID. Пташині в даний час існують в експериментальній Debian SID всередині jvm-7-avian-jre
пакета.
І Avian, і JamVM працюють у поєднанні з класами OpenJDK-7, тому ви можете використовувати їх як для прискорення всіх пускових пристроїв, таких як javac, так і java. файл/etc/java-7-openjdk/jvm-armhf.cfg
визначає, який JVM використовується за замовчуванням у openjdk 7 на Rasbian.
Ви також можете окремо повідомити пускові установки Java, який jvm використовувати:
java -jamvm
javac -J-jamvm
Oracle випустив повну версію (більше не попередній перегляд) Java 8 та Java 7 для архітектури ARM Raspberry Pi: посилання на Java 8 .
Ви також можете використовувати з командного рядка:
sudo apt-get update
sudo apt-get install oracle-java8-jdk
Можна комбінувати OpenJDK 7 з JVM від Java JDK8, що включає JIT, щоб отримати налаштування з підтримкою X11 та роботою Swing / AWT.
Інтерфейс JNI, за винятком "Classpath", чітко відокремлює класи JVM та середовище виконання. Якщо ви використовуєте точку доступу клієнта (jre / lib / arm / client / libjvm.so) з попереднього попереднього перегляду JavaFX 8 у поєднанні з компільованим середовищем програми OpenJDK 7 Runtime і запусниками Java (Rasrbian) OpenJDK 7 (/ usr / lib / jvm / java-7- openjdk-armhf) Ви отримаєте таку настройку та переваги:
Налаштування:
Завантажте jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz з http://jdk8.java.net/fxarmpreview/index.html
# Install openjdk-7 and the icedtea-web browser plugin
sudo apt-get install openjdk-7-jdk icedtea-7-plugin
# Extract the Oracle Client Hotspot JVM from the JavaFX 8 preview
tar --extract --verbose --file=jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz jdk1.8.0/jre/lib/arm/client
# Place the client hotspot dir containing the libjvm.so inside the OpenJDK 7 jre/lib/arm folder
sudo mv jdk1.8.0/jre/lib/arm/client /usr/lib/jvm/java-7-openjdk-armhf/jre/lib/arm/oracle
# Configure the OpenJDK Runtime to use the Oracle client Hotspot JVM dir
# This sed command places -oracle KNOWN at the first line of jvm-armhf.cfg
sudo sed -i -e "1i\\-oracle KNOWN" /etc/java-7-openjdk/jvm-armhf.cfg
java -version
java version "1.7.0_07" <--- This is the OpenJDK 7 Update version
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1+rpi1) <--- This is the OpenJDK 7 Runtime version
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode) <--- This is the Oracle Client Hotspot JVM version