仕事でJavaライクな言語を使う必要があり、Javaの学習を始めることにしました。手を動かして覚えていく派ですが、コンパイルして動かすのはめんどくさそうなので、私が信頼するJupyterで使えるよう環境設定しました。今回は、このJupyerでJavaを使えるようにする環境設定方法について実際に行った方法をまとめました。
一人でも多くの方の参考になりましたら幸いです。
はじめに
今回の実行環境は以下になります。
OS: Mac OSX
Jupyter: 1.0.0
jupyterlab: 0.35.4
python: 3.7.3
環境構築フローは、次のようになります。
- HomebrewでJavaのインストール
- Java用のJupyterカーネルをインストール
1. Javaのインストール
まずはJavaをインストールします。今回はOpen JDK11をHomebrewを使ってインストールしました。Homebrewのインストール方法はインターネットでたくさん出ているので、そちらを参考にして頂ければと思います。また、Javaのインストール方法については下記サイトを参考にしています。
まずはJavaをインストールします。
~$ brew cask install java11
インストールが完了したら、パスを通します。 ※私がzshを使っているので”.zprofile”ファイルに記述していますが、bashであれば”.bash_profile”ファイルに書き込んでください。
~$ vim .zprofile
# 記述内容
export JAVA_HOME=`/usr/libexec/java_home -v 11`
PATH=${JAVA_HOME}/bin:${PATH}
これでJavaのインストールと設定が完了しました。JavaとJavaのコンパイルツールJavacのバージョンを確認します。
~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
~$ javac -version
javac 11.0.2
Java11がインストールされ、パスが通っていることも確認できました。これでJavaのインストールは完了です。
2. JupyterにJavaカーネルをインストール
次は、Jupyterにjavaカーネルをインストールし、Javaを使えるようにします。参考にしたのは、Javaカーネルの公式gitリポジトリになります。
まずは、Javaカーネルをダウンロードします。今回は、保存フォルダは他のカーネルを真似て、”~/.ijava”フォルダに指定しています。
~$ git clone https://github.com/SpencerPark/IJava.git .ijava
Cloning into '.ijava'...
remote: Enumerating objects: 88, done.
remote: Counting objects: 100% (88/88), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 821 (delta 23), reused 75 (delta 17), pack-reused 733
Receiving objects: 100% (821/821), 462.49 KiB | 656.00 KiB/s, done.
Resolving deltas: 100% (304/304), done.
ダウンロードしたフォルダに移ります。
~$ cd .ijava
次にインストールを行います。下記コマンドは、上記の公式githubリポジトリに記載されいるもので、カーネルをインストールし、ビルドしている作業のようですが詳細はよくわかりません。。。
~/.ijava $ chmod u+x gradlew && ./gradlew installKernel
Downloading https://services.gradle.org/distributions/gradle-4.8.1-bin.zip
........................................................................
Unzipping /Users/hoge/.gradle/wrapper/dists/gradle-4.8.1-bin/e8p42vx1m7a3mz9ydmjagn6wn/gradle-4.8.1-bin.zip to /Users/hoge/.gradle/wrapper/dists/gradle-4.8.1-bin/e8p42vx1m7a3mz9ydmjagn6wn
Set executable permissions for: /Users/hoge/.gradle/wrapper/dists/gradle-4.8.1-bin/e8p42vx1m7a3mz9ydmjagn6wn/gradle-4.8.1/bin/gradle
(省略)
Download https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
Download https://repo.maven.apache.org/maven2/org/apache/maven/maven-model-builder/3.6.0/maven-model-builder-3.6.0.jar
> Task :compileJava
注意:/Users/hoge/.ijava/src/main/java/io/github/spencerpark/ijava/magics/dependencies/Maven.javaは推奨されないAPIを使用またはオーバーライドしています。
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 1m 44s
4 actionable tasks: 4 executed
とこんな感じでインストールが完了しました。Javaカーネルがインストールされたかを確認するには次のコマンドを実行します。
~/.ijava $ jupyter kernelspec list
Available kernels:
java /Users/hoge/Library/Jupyter/kernels/java
python3 /usr/local/share/jupyter/kernels/python3
3. Jupyterで実際にJavaを使ってみる
それでは実際にJupyterでJavaを使ってみます。私は普段からjupyter labを愛用していますので、ここでもJupyter labを使って使用方法を試してみます。まずターミナルからjupyter labを呼び出します。
~$ jupyter lab
Jupyter labを起動すると次のような画面が表示され、notebookとコンソールにJavaの表記が出現します。
なお、私はJavaScriptも使えるようにしていますが、JavaScriptを使用できる方法については下記記事でまとめていますので、興味があればご覧頂ければと思います。
実際にJavaを使ってみます。
Javaのコードが無事実行できました。これで環境構築成功です。
最後に
以上がJupyterでJavaを使えるようにする方法です。JavaScriptに比べれ圧倒的に簡単でひっかるところも少なく構築できました。これを活用してJavaの勉強を進めようと思います。読んでいただきありがとうございました。この記事が参考になりましたら幸いです。