Java settingup RPi ~ラズパイのJVMを切り替える~

イントロダクション

ラズパイでJavaでの画面を表示したいがラズパイ用のJavaセットアップをしていなかったので改めてセットアップする

ラズパイには、はじめから(デフォルト)でJavaがインストールされているようですがJavaで低レベルな機能を使用しようとすると動きません。

Java言語では、低レベル(C言語に近い)機能~高レベル(リスト、可変長配列など)が使用できるので今回実装しようとしている「Swing」は「高レベルAPIになりますが基盤としているテクノロジーAWTが動かないとSwingもうごかないというわけです。

※上のリンクは「パッケージの説明」部分を参考にしてください。

~低レベル機能について~

「低レベル」というのは、画面表示とか、ファイルの扱いなど物理的な領域に近い部分の処理のことを言います。Networkも低レベルな領域ですが、大体通信用のライブラリが用意されているので「高レベル」に近くなります。

<例>

  1. Rest通信
  2. AMQP通信
  3. EJB

本題~JVMの切り替え~

ラズパイ上でJVMの切り替えを行う手順を示します。

  1. オラクルからARM用のJDKをダウンロードする。
  2. tarファイルを解凍して展開する
  3. 使用するjavaコマンドのJVMを切り替える

「1」にあるリンクのページに手順が記載されています。が英語です。読める人はそちらを呼んでください。

上のリンクからも移動できますが、ダウンロードページからARM用のJDKをダウンロードします。

  • PCからRPiのSDカードにダウンロードする
  • PCでダウンロードしたファイルをSSHで転送する
  • wgetコマンドでダウンロードする(できないかも?)

自分はSSHで転送する手段を使用しました。

コマンドの実行

# 2.tarファイルの解凍
tar zxvf jdk-8u5-linux-i586.tar.gz -C /usr/java

# 3.JVMをjavaコマンドに設定する(JVM切り替える(JDKを切り替える))
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.7.0_10/bin/java" 1
sudo update-alternatives --set java /opt/java/jdk1.7.0_10/bin/java

# 最後に確認します
sudo update-alternatives --list java
sudo update-alternatives --list javac

#Javaを選択し直す場合は。。。
sudo update-alternatives --config java

最後の「java」の部分は「javac」に変えて確認できます。

こんな感じです。