如何在多个java版本之间随意切换Java环境
如何在多个java版本之间随意切换Java环境
软件开发和测试中经常要在不同的Java版本之间来回切换,最常见的是从其他Java版本(Java9,Java10,Java11)切换到Java8, 特别是使用Scala,Spark,目前还只是支持java8,必须切换到java8环境,否则无法正常编译和运行.
这个问题,我有个比较好的解决办法:
创建一个目录,存放一下java8 java11 2个环境切换脚本.
/Users/happy/happyscript
happy:happyscript happy$ ls
java11 java8
happy:happyscript happy$
happy:happyscript happy$ which java
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java
cd /Library/Java/JavaVirtualMachines/
$ ls
jdk-10.0.1.jdk jdk-11.jdk jdk1.8.0_102 jdk1.8.0_181.jdk
发现原来macbook 上的java 都安装在这里.
下面创建2个java8,java11 脚本,内容如下:
happy:happyscript happy$ more java8
#!/bin/bash
#这个程序请用 source java8 执行,环境变量才能保存在当前shell环境里.
echo “这个程序请用 source java8 执行,环境变量才能保存在当前shell环境里.”
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
echo JAVA_HOME is $JAVA_HOME
arr=$(echo $PATH | tr : ‘\n’)
PATH=""
strB=“JavaVirtualMachines”
myNewPath=""
for x in $arr; do
echo
x e c h o " x echo "
x
e
c
h
o
" {x}" | grep -q "
s t r B " r e s u l t
{strB}" result=
s
t
r
B
"
r
e
s
u
l
t
= ?
echo “result=
r e s u l t x
{result} x=
r
e
s
u
l
t
x
= {x} strB=${strB}”
if [[ $x = *"JavaVirtualMachines"* ]]; then
echo $x
else
export myNewPath=$myNewPath:$x
fi
done
export PATH=
J A V A H O M E / b i n : JAVA_HOME/bin:
J
A
V
A
H
O
M
E
/
b
i
n
: myNewPath
echo $PATH
java -version
$ more java11
#!/bin/bash
#这个程序请用 source java11 执行,环境变量才能保存在当前shell环境里.
echo “#这个程序请用 source java11 执行,环境变量才能保存在当前shell环境里.”
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
echo JAVA_HOME is $JAVA_HOME
arr=$(echo $PATH | tr : ‘\n’)
PATH=""
strB=“JavaVirtualMachines”
myNewPath=""
for x in $arr; do
echo
x e c h o " x echo "
x
e
c
h
o
" {x}" | grep -q "
s t r B " r e s u l t
{strB}" result=
s
t
r
B
"
r
e
s
u
l
t
= ?
echo “result=
r e s u l t x
{result} x=
r
e
s
u
l
t
x
= {x} strB=${strB}”
if [[ $x = *"JavaVirtualMachines"* ]]; then
echo $x
else
export myNewPath=$myNewPath:$x
fi
done
export PATH=
m y N e w P a t h : myNewPath:
m
y
N
e
w
P
a
t
h
: JAVA_HOME/bin
echo $PATH
vi ~/.bash_profile
添加你刚才保存脚本的路径
#java_home change by java8,java11 shell command
export PATH=$PATH:/{你的路径脚本路径}
source ~/.bash_profile
好了。现在可以测试一下了。
source java11
source java8
到此,测试成功,可以方便的使用了.