OpenRTM-aist-Javaの実行には、CORBAと呼ばれる通信ミドルウェアが必要です。Javaにおいては、CORBAの機能はもともと標準機能として組み込まれていましたが、Java9以降はdeprecated (将来的に廃止される非推奨機能)として扱われ、Java11以降では完全に削除されます。したがって、OpenRTM-aist-Javaを利用するためには、Java8の開発環境パッケージJDK8を利用する必要があります。 JDK8は、配布元のOracleが配布やサポートを停止しつつありますが、まだJava8を必要としている人が多くいるため、JDK8自体はしばらくはいくつかのベンダーから入手可能です。ここでは、JDK8の入手方法、インストール方法を紹介します。
JDK8の配布元として、こちらが見つけたもののいくつかを下記に示します。あくまでも、こちらが見つけたいくつかをリストしているだけで、ここにリストされないものがあったとしても、特に意図はないことを理解ください。また、それぞれのサイトにおける配布に関しては使用が有償のもの、サポートが有償のものとかいろいろ条件があったりしますので、それぞれのサイトで、各自確認の上使用してください。
Javaの開発・配布元のOracleにおいても、2019年11月現在、JDK8はダウンロード可能です。個人ユースや開発ユースは無償ライセンスがあるようですが、商用ユースでは有償ライセンスが必要なようです。正確なライセンス条件などついては下記リンクやオラクルからのメッセージを参照ください。
AdoptOpenJDKは、IBMがスポンサーしコミュニティによりメンテナンスされているOpenJDKビルドを提供するプロジェクトです。JVMとしてHotSpotと呼ばれるOpenJDKコミュニティで開発されたものと、OpenJ9と呼ばれるEclipseコミュニティで開発されたものの2種類が提供されています。
下記リンクより[OpenJDK8(LTS)]と、JVM([HotSpot]か[OpenJ9])を選択し[Latest release]のボタンをクリックしてください。プラットフォームに合わせたものダウンロードが始まるはずです。違うプラットフォーム用のものが欲しい場合は、[Other platforms]のボタンをクリックして必要なJDKを入手してください。 またインストール方法については[Installation]と書かれたリンクより情報を得てください。Amazon CorrettoはAmazonの長期サポートを含むOpenJDKのビルドです。入手は下記リンクからWebサイトに行き、[Amazon Corretto8ダウンロードする]ボタンをクリックしてください。プラットウォームごとのビルドのリストが表示されますので、プラットフォームに合わせて必要なインストレーション用ファイルを入手してください。
主なLinuxディストリビューションでは、標準パッケージとして、JDK8に相当するOpenJDKパッケージが配布されています。
Ubuntu Linux, Debian Linuxなどでは apt コマンドで以下のようにインストールすることができます。
$ sudo apt install openjdk-8-jdk
Fedora Linuxではyumコマンドで以下のようにインストールすることができます。
$ sudo yum -y install java-1.8.0-openjdk
上記のサードパーティベンダのWebサイトから入手することもできます。インストール方法についてはそのサイトの情報に従うか、Javaの標準的方法でインストールしてください。
参考として、Raspberry Pi OS bullseye 64bit環境へAdoptium(旧AdoptOpenJDK)からバイナリ(tar.gz)をダウンロード・展開し、既にインストールされているJDK11からJDK8に切り替える手順を示します。
aarch64用のJDK8をダウンロード・展開します。
$ wget https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u352-b08/OpenJDK8U-jdk_aarch64_linux_hotspot_8u352b08.tar.gz $ tar xvzf OpenJDK8U-jdk_aarch64_linux_hotspot_8u352b08.tar.gz $ ls OpenJDK8U-jdk_aarch64_linux_hotspot_8u352b08.tar.gz jdk8u352-b08
update-alternativeコマンドで、JDK11からJDK8へ切り替えられるように、/usr/lib/jvm/下にコピーし、--installオプションでシンボリックリンクの作成・登録を行います。
$ sudo mv ./jdk8u352-b08 /usr/lib/jvm/jdk8u352 $ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk8u352/bin/java" 1 $ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk8u352/bin/javac" 1
これで、次の「既にJDK8以外がインストールされている場合」に示している sudo update-alternative --config java コマンドでJDK8に切り替えます。 切り替え後にバージョンを確認しておきます。
$ java -version openjdk version "1.8.0_352" OpenJDK Runtime Environment (Temurin)(build 1.8.0_352-b08) OpenJDK 64-Bit Server VM (Temurin)(build 25.352-b08, mixed mode)
なお、JDK8以外のJDKがデフォルト状態でインストールされている可能性がありますので、
$ java -version
コマンドでバージョンが1.8で始まるバージョンなどJDK8を意味するバージョンになっていることを確認してください。 もし、そうでなかったら
$ sudo update-alternatives --config java
コマンドを用いてJDK8ベースのJava環境を選択してください。 ubuntu18.04の環境でopenjdk-8-jdkをインストールした後での実行例は以下のようになります。
$ sudo update-alternatives --config java 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自動モード 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手動モード 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/java (java) を提供するためにマニュアルモードで /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java を使います
WindowsでのJDK8のインストールは上記のサイトなどからMSIファイルを入手し、それを実行することでインストールを行うか、MSI以外の形態のファイルにおいては入手元の指示に従いインストールを行ってください。インストール後は上記Linuxのケースと同様にコマンドプロンプトを開いて
java -version
と入力し、インストールの確認を行ってください。