【Java】使用多个版本的Java的切换方法
首先
在使用多个版本的Java并切换使用时,有多种方法可供选择,如使用jenv等。在这里,我们介绍使用传统的alternatives方法。
妾想,若在以下场景中,略知一二alternatives命令名,或可获益匪浅。
-
- 古いJavaがインストールされている本番環境に新しいJavaをインストールしたいけれども、不具合が発生した場合に古いJavaへ切り戻したい時。
-
- テスト環境で複数バージョンのJavaを利用したい時。
- OracleJDKからOpenJDKにサッと切り替えたい時。
“alternatives命令是什么呢?”
“alternatives” 是 CentOS 中內建的一個指令。
当您在man命令中搜索alternatives时,会发现它被描述为“通过维护符号链接来确定默认命令”。尽管用英语描述可能有些晦涩,但它实际上是一种非常优秀的命令,可利用符号链接切换具有相似功能或不同版本的软件。
换句话说,不仅仅限于Java,可以在各种命令中应用。
考试环境
-
- OS:CentOS 6.10
-
- インストール済みのJava:Java12(Oracle JDK)
RPMでインストールしています。
[root@akagi ~]# java -version
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
预先准备
安装新的Java(OpenJDK)。
-
- 从OpenJDK的网站下载Java12的tar.gz文件。
-
- 将tar.gz文件放置在适当的目录(在这里是/usr/local)下并进行解压以完成安装。
安装已经完成,但路径未设置。
[root@akagi ~]# cd /usr/local/
[root@akagi local]# tar zxvf openjdk-12.0.1_linux-x64_bin.tar.gz
[root@akagi local]# ls | grep jdk
jdk-12.0.1
openjdk-12.0.1_linux-x64_bin.tar.gz
使用alternatives命令切换Java。
确认当前的状态
alternatives –config {総称名(generic name)}で、現在の状態を対話モードで確認できます。
総称名は”java”や”perl”など、実際に利用しているコマンドを指定します。
ここでは”java”に対応するコマンドが1つしかないので、[Enter]を押して現在の設定を維持したまま対話モードを抜けます。
[root@akagi local]# alternatives --config java
1 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/java/jdk-12.0.1/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
命令的注册~切换使用的JVM
alternatives –install {リンク} {総称名(generic name)} {パス} {優先度}と入力することで、選択肢となるコマンドを登録できます。
存在しない”総称名”を指定した場合、”総称名”のグループが新たに作成されます。
既に存在する”総称名”を指定した場合、同じ”総称名”のグループ内に登録されます。
リンクは、総称名のコマンドを実行した際に呼ばれるシンボリックリンクで、”/usr/bin/java”や”/usr/local/bin/perl”などを指定します。
パスは、総称名のコマンドを実行した際に実際に実行されるコマンドです。
再びalternatives –config javaと入力して、呼び出されるJVMを切り替えます。
[+]は現在選択されているもので、この時点ではOracleJDKが選択状態となっています。
そこで、最後に要求される「選択番号」で2(2番)を入力して、OpenJDKに切り替えます。
[root@akagi local]# alternatives --install /usr/bin/java java /usr/local/jdk-12.0.1/bin/java 2
[root@akagi local]# alternatives --config java
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/java/jdk-12.0.1/bin/java
2 /usr/local/jdk-12.0.1/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
确认设定后的状态
-
- 設定完了後にalternatives –config javaと入力して、現在選択されているJVMを確認します。
この時点では2番(OpenJDK)が選択されています。
[root@akagi local]# alternatives --config java
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
* 1 /usr/java/jdk-12.0.1/bin/java
+ 2 /usr/local/jdk-12.0.1/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
- 最後にJavaのバージョンを表示して、実際に動作しているのがOpenJDKであることを確認します。
[root@akagi local]# java -version
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
其他
-
- 以下の記事によると、CentOS7系でもalternativesコマンドでJavaのバージョンを切り替えられるようです。
CentOS7系+JDK-9.0.1+JDK1.8.0+alternativesで切り替え
请提供参考网址。
- CentOSで「alternatives」コマンドを使用してJavaのバージョンを切り替える