■Java (OpenJDK) のインストール
$ apt search openjdk
OpenJDK 8をインストール
$ sudo apt install openjdk-8-jdk
バージョンの確認
$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
OpenJDK 11 をインストール
$ sudo apt install openjdk-11-jdk
バージョン確認
$ java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)
■実行したjavaのバージョンやOSを確認する
javaクラスの作成(VersionCheck.java)
public class VersionCheck {
public static void main(String[] args) {
System.out.print("Javaバージョン:");
System.out.println(System.getProperty("java.version"));
System.out.print("OS:");
System.out.println(System.getProperty("os.name"));
}
}
コンパイル
$ javac VersionCheck.java
$ java VersionCheck
Javaバージョン:11.0.15
OS:Linux
シェルスクリプトからJavaを実行する
シェルの作成
$ vi VersionCheck.sh
java VersionCheck
実行
$ ./VersionCheck.sh
Javaバージョン:11.0.15
OS:Linux
■javaの実行バージョンを変更する(alternatives)
$ sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
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 手動モード
■javaの実行バージョンを変更する(PATHとJAVA_HOME)
JDKのインストール先を調べる
$ sudo update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
PATHの確認
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
環境変数の設定
.bashrcファイルに記載
$ cd
vi .bashrc
下記を追記
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
※ポイント
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
ではなく
/usr/lib/jvm/java-8-openjdk-amd64/bin
を設定
■alternativesの設定内容を確認
$ which java
/usr/bin/java
$ ll /usr/bin/java
lrwxrwxrwx 1 root root 22 7月 16 10:29 /usr/bin/java -> /etc/alternatives/java*
$ ll /etc/alternatives/java
lrwxrwxrwx 1 root root 43 7月 16 13:21 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java*
となっており、PATHとJAVA_HOMEで設定する場合、PATHの「/usr/bin」よりも前に
切り替えたいJDKを設定する必要がある
export PATH=$JAVA_HOME/bin:$PATH
sourceコマンドで .bashrcを再読み込みします。
$ source .bashrc
設定内容の確認
$ echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin