我们在做Jenkins打包或者其他需要依赖JDK环境时,这个时候JDK版本还不一样,这样就需要我们在打包时候能够脚本能自动切换到合适JDK环境。故写了下面这个JDK版本切换脚本(/usr/local/bin/sjdk),供大家使用。
#!/bin/bash
# author 小毛驴
#
#jdk8
#jdk11 default
# 如果脚本涉及到修改环境变量和自定义环境变量,执行脚本前一定要还原。
VERSION=${VERSION:="11"}
function usage(){
echo -e "\nUsage: $0 <option> <value>"
echo -e "\n option:"
echo -e "\n -v,--version version num [8|11], default 11"
echo -e "\n -h,--help help"
}
function unsetEnv() {
source /etc/environment
unset JAVA_HOME
unset CLASSPATH
}
function jdk8() {
unsetEnv
export JAVA_HOME=/usr/local/jdk8
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
java -version
}
function jdk11() {
unsetEnv
export JAVA_HOME=/usr/local/jdk11
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
java -version
}
function jdkSelect() {
if [[ "${VERSION}"x == "8"x ]]; then
jdk8
fi
if [[ "${VERSION}"x == "11"x ]]; then
jdk11
fi
}
function main() {
while [ -n "$1" ];do
case $1 in
-v|--version )
VERSION=$2
shift
;;
-h|--help )
usage
exit
;;
esac
shift
done
jdkSelect
}
main $@
使用时候只需要在需要切换jdk的脚本里多一行该脚本的调用,例如:
/usr/local/bin/sjdk -v 8