mac下默认的JDK1.8通过如下方法获得
1 2 3 4 5 6
| #/usr/libexec/java_home -V
Matching Java Virtual Machines (1): 1.8.0_172, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
|
当你将Oracle JDK11(例如jdk-11.0.5)或其他其他JDK放入文件夹/Library/Java/JavaVirtualMachines/jdk11xxx后,,这是java_home的输出是这样的:
1 2 3 4 5 6 7
| #/usr/libexec/java_home -V
Matching Java Virtual Machines (2): 11.0.5, x86_64: "Java SE 11.0.5" /Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home 1.8.0_172, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home
|
系统默认使用最高版本的JDK:
1 2 3 4
| #java -version java version "11.0.5" 2019-10-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
|
有时候我们希望默认使用低版本的JDK,而是在某个工程中使用高版本的JDK,这时候要怎么办,
将JDK 11 Home路径下的Info.plist改名为info.plist.disabled,然后java_home显示JDK 11不被找到,并全局使用JDK 1.8
1 2 3 4 5 6
| #/usr/libexec/jenv -V
Matching Java Virtual Machines (2): 1.8.0_172, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
|
再此之后,我们该怎么使用JDK11呢,需要不停的修改不同版本的JDK的info.plist文件,这样会很麻烦。
一个简洁的办法是通过jenv管理本地的JDK版本。
jenv可以控制全局、文件夹、shell会话的JDK版本。通过brew可以安装jenv:brew install jenv
全局设置: jenv global xxx
文件夹设置:jenv local xxx
shell会话设置:jenv sh-shell xxx
显示当前使用的版本: jenv version
显示所有系统jdk版本:jenv versions
然后按照https://www.jenv.be/ 下介绍的步骤修改zsh或者bash的rc文件,这里以zsh为例:
1 2
| $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(jenv init -)"' >> ~/.zshrc
|
然后通过jenv add 来将JDK的版本到jenv中:
1 2 3 4 5 6 7 8 9 10 11 12
| #jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home #jenv add /Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home
#jenv versions
system (set by /Users/james/.jenv/version) 1.8 1.8.0.172 11.0 11.0.5 oracle64-1.8.0.172 oracle64-11.0.5
|
如果某个工程需要使用不同版本的JDK,例如全局为JDK1.8,而某个工程使用JDK 11,那么在该工程文件夹下:
如果该工程是maven工程还需要(很重要):
1
| #jenv enalbe-plugin maven
|
Related Issues not found
Please contact @warvyvr to initialize the comment