複数のjavaとPATHの設定

■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

スポンサーリンク
google 6948682462
google 6948682462

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
google 6948682462