OpenJDKはPiで正常にコンパイルおよび実行されますが、私が見つけた唯一のバージョンはJITのないバージョンです。Oracleは、ARMv6ではなく、ARMの他のバージョンにこのようなJDKを提供します。その間にJDKのそのようなバージョンを起動して実行する方法はありますか?
OpenJDKはPiで正常にコンパイルおよび実行されますが、私が見つけた唯一のバージョンはJITのないバージョンです。Oracleは、ARMv6ではなく、ARMの他のバージョンにこのようなJDKを提供します。その間にJDKのそのようなバージョンを起動して実行する方法はありますか?
回答:
Oracleは(Java 7u6の時点で)完全なAWT / SwingをサポートするPiで動作するJITを備えたJDKをリリースしました。JVMTIもサポートしています(cacaoには部分的なサポートのみがあります。)プレスリリースはこちら。
Greenfootで動作することを確認し、プレーン(非JIT)OpenJDKビルドのようなものと比較して大幅な高速化を提供します。
執筆時点では、ハードフローティングポイントをサポートしていないため、ハードフロートのみを使用するRaspbianなどのディストリビューションでは動作しません。ただし、これは将来のリリースで計画されています。
更新:Darrenが指摘したように、ハードフロートバージョンがARM向けにJDK8プレビューリリースの形式でリリースされました。こちらで見つけることができます。
更新2:JDK7ではハードフロートがサポートされるようになりました。
IcedTea-6-JRE-カカオパッケージには、JITコンパイラが含まれている、と伝えRasPiに取り組んでいます。
自分で試したことはありません。
オラクルは現在、ARM向けのJava JDK8の開発者向けプレビュー版をリリースしました。これには、Pi上のハードフロートRaspbianのサポートが特に含まれています。動作し、特定の浮動小数点を集中的に使用する計算では、OpenJDKの約20倍高速であることがわかりました。http://jdk8.java.net/fxarmpreview/
Rasbianでは、「code-copying-JIT」を含むJamVMを使用できます
apt-get install icedtea-7-jre-jamvm
JamVMは現在、RasbianのJITを含む最速かつ最も安定したJVMです。
Avianは、JITも含むRasbianでもサポートされています。手動でビルドする必要があります:http : //labb.zafena.se/?p=630
Avianは、Debian SIDソースからビルドされたRaspbianに登場することを期待しています。Avianは現在、jvm-7-avian-jre
パッケージ内で実験的なDebian SIDに存在しています。
AvianとJamVMの両方がOpenJDK-7クラスと連携して動作するため、両方を使用してjavacやjavaなどのすべてのjavaランチャーを高速化できます。このファイルは、/etc/java-7-openjdk/jvm-armhf.cfg
Rasbianのopenjdk 7内でデフォルトで使用されるJVMを決定します。
また、使用するjvmをjavaランチャーに個別に伝えることもできます。
java -jamvm
javac -J-jamvm
Oracleは、Raspberry PiのARMアーキテクチャ用のJava 8およびJava 7のフルバージョン(プレビュー版ではなくなりました):Java 8へのリンクをリリースしました。
コマンドラインからも使用できます:
sudo apt-get update
sudo apt-get install oracle-java8-jdk
OpenJDK 7を、JITを含むJava JDK8のJVMと組み合わせて、X11がサポートされ、Swing / AWTが動作するセットアップを取得することができます。
「Classpath」例外を含むJNIインターフェイスは、JVMクラスとランタイム環境クラスを明確に分離します。JavaFX 8プレビューのクライアントホットスポット(jre / lib / arm / client / libjvm.so)を、RasbianでコンパイルされたOpenJDK 7ランタイム環境クラスおよびJavaランチャー(/ usr / lib / jvm / java-7- openjdk-armhf)次の設定と利点が得られます:
セットアップ:
http://jdk8.java.net/fxarmpreview/index.htmlからjdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gzをダウンロードします
# 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