RaspberryPi
JVM
JVMDay 14

Raspberry Pi (Raspbian) にOracle HotSpotVMを導入する方法

More than 3 years have passed since last update.

はじめに

少し古いですが、ベンチマークの結果が有ります。

Java On Raspberry Pi Performance - Resin 4.0 Wiki
http://wiki4.caucho.com/Java_On_Raspberry_Pi_Performance

レスポンスが必要な場面で頻繁にJVMを使うのであれば、HotSpotVMを使わない手はありません。

OracleはJava SEを配布していますのでそれを使いましょう。

以前、Oracle(Sun)は戦略上、ARMにはJava SEではなくJava ME用のJVMを配布していました。
最近、組み込み向けのラインナップをJava SEに統合し省サイズのJava SE Embeddedを配布しています。

試していませんが、glibcなど必要なライブラリがあればRaspbian以外のLinuxディストリビューションでも問題ないとおもいます。

OpenJDK: Vesrionの確認

javaコマンドでversionを確認しましょう。

$ java -version

OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-2~deb7u1+rpi1)
OpenJDK Zero VM (build 24.65-b04, mixed mode)

「OpenJDK Zero VM」は、JITがないOpenJDK実装です。
さっそく、Oracle JDKを入れてみましょう。

JDK選択とダウンロード

参考文献のJDK配布先からダウンロードしてください。

ダウンロードには、ブラウザが必要になりますので、CUIのlinksなどを使ってダウンロードしましょう。
別PCのブラウザからダウンロードして、共有したり、scpなどでコピーしたりするのもよいでしょう。

取得の手順は、いつもどおりライセンスを読んでラジオボタンを承認に変更して、ダウンロードとなります。

Raspberry PiのCPUは、Hard Floatに対応してますので、Hard Float版をダウンロードしましょう。

Raspberry Pi上のアプリケーション起動速度に関しては、
JDK7 > JDK8
となっています。
必要な機能に応じてダウンロードして下さい。

jdk-7u60-linux-arm-vfp-hflt.tar.gzを展開するとjdk1.7.0_60フォルダが出来ますので、

ユーザディレクトリ内か全体か検討して配置します。

全体の場合、ベンダツールは、sudoコマンドなどで /opt フォルダに展開する場合が多いです。

パスを通す必要がある場合は、設定しましょう。

export JAVA_HOME=/opt/opt/jdk1.7.0_60
PATH=$JAVA_HOME/bin:$PATH

alternatives

デフォルトに設定したい場合、alternativesコマンドで入れ替えることも出来ます。

#alternativesを確認
sudo update-alternatives --config java

#最後の数字は空いているところに
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/opt/jdk1.7.0_60/bin/java" 1
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/opt/jdk1.8.0_06/bin/java" 2

#再度確認切り替え
sudo update-alternatives --config java

終わりに

それでは、快適なRaspberry PiのJVMライフを楽しみましょう。
ちなみに、clojureのREPL起動にはHotSpotVMでも18秒ぐらいかかるので、dripコマンドなどで起動済みにしておかないと辛いです。

参考文献

Embedded: Resin On Raspberry Pi - Resin 4.0 Wiki
http://wiki4.caucho.com/Embedded:_Resin_On_Raspberry_Pi

Java On Raspberry Pi Performance - Resin 4.0 Wiki
http://wiki4.caucho.com/Java_On_Raspberry_Pi_Performance

JDK配布元

JDK7 for ARM Download
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-arm-downloads-2187468.html

JDK 8 for ARM - Download
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-arm-downloads-2187472.html

Java SE Embedded - Downloads | Oracle Technology Network | Oracle
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html