WSL 上に java の開発環境を構築した際のメモです。
ubuntu のバージョンは 18.04.5 です。
以下を参考にしました。
Ubuntu 20.04にAptを使用してJavaをインストールする方法 | DigitalOcean
WSL へ JDK をインストール
java がないことを確認します。
mor@DESKTOP-H6IEJF9:~$ javac -version Command 'javac' not found, but can be installed with: sudo apt install default-jdk sudo apt install openjdk-11-jdk-headless sudo apt install ecj sudo apt install openjdk-8-jdk-headless mor@DESKTOP-H6IEJF9:~$
インストールします。
mor@DESKTOP-H6IEJF9:~$ sudo apt install default-jdk
インストールできたことを確認しておきます。
mor@DESKTOP-H6IEJF9:~$ java -version openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing) mor@DESKTOP-H6IEJF9:~$ mor@DESKTOP-H6IEJF9:~$ javac -version javac 11.0.11 mor@DESKTOP-H6IEJF9:~$
問題ないですね。
環境変数を設定しておきます。.bachrc の最後に
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
を追加します。
VSCode でリモート開発するので、VSCode 用の拡張機能 Java Extension Pack をインストールしておきます。
なお、インストール先は、 WSL 側になるので、その点ご注意ください。
OpenJDK などの用語について(2021/5/13 追記)
ふと、しばらく前に、 Java が有償化するとかなんだとかニュースがあったことを思い出しました。
ちょっと気になったので、改めて調べてみたところ Java そのものが有償化とかではなく、 Oracle が提供する OpenJDK バイナリのサポートが短期間(半年)になるよ、ということだったようです。商用だと、サポートのないものを使い続けるのはリスクがあるので、いろいろと話題になったんですね、きっと。
その際に、あれこれ用語が出てきたのですが、これがまあ、実にややこしい。自分なりの結論としては、下記記事が一番よくまとまっているという印象です。
上記の記事にも書いてありますが、
- OpenJDK http://openjdk.java.net/ では実装(ソースコード)をまとめているが、バイナリを提供していない
- jdk.java.net は Oracle が提供する OpenJDK のバイナリ
- Oracle JDK は jdk.java.net とは別途提供される
というのを理解するとなんとなくわかるようになります。
そうなると、 Ubuntu で apt でインストールする JDK (openjdk-11-jdk) は Ubuntu (Canonical) が提供する OpenJDK のバイナリであり、 Android Studio に組み込まれている JDK は Google が提供する OpenJDK のバイナリ と考えればよさそうです。
こんな感じなので、サポート期間も OpenJDK バイナリのベンダー次第になるようです。 Ubuntu の openjdk-11 だと、 LTS 扱いになるようです。
Ubuntu 18.04 その327 - OpenJDK 11への移行とOpenJDK 8のサポートについて - kledgeb Announcing OpenJDK 11 packages in Ubuntu 18.04 LTS | Ubuntu
なかなかいろいろと大変ですね。
こちらも参考になりました。