java のverison切り替えするのが少しだけ面倒でしたので、bashの関数にしてコマンドのように利用できるようにしました。
参考:
http://shinsuke789.hatenablog.jp/entry/2017/08/16/103000
https://qiita.com/ponsuke0531/items/795cd00d93b71c14d07b
bash追加内容
1.~/.bash_profile
を編集
$vi ~/.bash_profile
2.下記を追記
~/.bash_profile
#!/bin/bash
# PATH初期化
export PATH=/sbin:/bin:/usr/bin:/usr/local/bin:/usr/sbin
#~~~ 普段~/.bash_profileでやっている処理 ~~~
# ~/.use-java-version
if [ -f ~/.use-java-version ]; then
export JAVA_HOME=$(cat ~/.use-java-version)
else
# わたしはデフォルトはjava8にしている
/usr/libexec/java_home -v 1.8 | tee ~/.use-java-version
export JAVA_HOME=$(cat ~/.use-java-version)
fi
export PATH=$JAVA_HOME/bin:$PATH
function lsjava () {
# インストール済みのjavaを出力
echo -e "\033[0;33mInstalled java version:\033[0;39m"
/usr/libexec/java_home -V
# 現在利用中のjavaを出力
echo -e "\n\033[0;33mCurrent specificed java version:\033[0;39m"
java -version
}
function chjava () {
# パラメータが指定されてなかったら
if [ -z "$1" ]; then
echo -e "Please specific java version. \nex)\n\$ chjava 1.8"
return 1
fi
/usr/libexec/java_home -v $1
local checkJavaVersion=$?
# 指定したjavaバージョンがインストールされてなかったら
if [ $checkJavaVersion -ne 0 ]; then
echo "Please specific installed java version."
echo Java $1 is not installed.
return 2
fi
echo Use java $1.
/usr/libexec/java_home -v $1 | tee ~/.use-java-version
# ~/.use-java-versionに利用するjavaのpath出力されたので、上の方のif [ -f ~/.use-java-version ]のところで、PATHに追加されるようになる
source ~/.bash_profile
# PATHを表示
echo PATH=$PATH
# 利用中のjava versionを表示
java -version
return 0
}
3.修正したbash_profileを読み込み。
$source ~/.bash_profile
機能
java version切り替え
$chjava [javaのバージョン]
で行う
#java10を指定
$chjava 10.0
#java8を指定
$chjava 1.8
エラーハンドリング
#パラメータを忘れた場合
$chjava
Please specific java version.
ex)
$ chjava 1.8
#インストールされていないjava versionが指定された場合
$chjava 1.9
Unable to find any JVMs matching version "1.9".
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
Please specific installed java version.
Java 1.9 is not installed.
現在インストール済みのjava version&利用中のversion
$lsjava
で行う
$lsjava
Installed java version:
Matching Java Virtual Machines (3):
10.0.1, x86_64: "Java SE 10.0.1" /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
1.8.0_101, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
Current specificed java version:
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)