Mac OSX 下如何便捷地在两个 Java 版本之间进行切换呢?机器上装了 Java6、Java7 和 Java8。

2015-10-28 21:47:33 +08:00
 Asan
8185 次点击
所在节点    Java
14 条回复
reeco
2015-10-28 21:54:37 +08:00
thekll
2015-10-28 22:40:55 +08:00
OS X 下可以同时安装多个 JDK 版本, jre 则只能存在一个版本。
使用 /usr/libexec/java_home 工具可以快速切换,具体请参照:

http://apple.stackexchange.com/questions/69086/how-can-i-switch-between-the-two-java-versions-in-mountain-lion-now-that-java-pr
secondwtq
2015-10-28 22:59:40 +08:00
第一反应, jvm

好吧我只是进来水的,主要是 Ruby 有个什么 rvm 我至今没搞懂
lizhuoli
2015-10-28 23:00:26 +08:00
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
wohenyingyu01
2015-10-28 23:28:29 +08:00
port activate javaxxx
iluhcm
2015-10-28 23:29:55 +08:00
```
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
```
robertlyc
2015-10-28 23:34:39 +08:00
brew install jenv
Asan
2015-10-29 07:23:51 +08:00
@robertlyc 有没有比较详细的介绍,一个链接也好,刚开始使用 Mac 。
Asan
2015-10-29 07:25:29 +08:00
@lizhuoli 网上搜过,也试过你说的这个,但这个要修改 .zshsrc 文件,弄了半天也没有改好。
inmyfree
2015-10-29 09:43:26 +08:00
我在 ubuntu 搞过这个东东
其实原理很简单,就是更改 JAVA_HOME 的隐射目录,原始的切换命令如下

export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

但是每次写这个很累,然后就想到 alias 改别名方式

在系统启动的时候添加

alias export16="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) "
alias export17="export JAVA_HOME=$(/usr/libexec/java_home -v 1.7) "
alias export18="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) "

然后重启,在想切换 java 版本的时候直接终端输入 export16 就可以了,你也可以直接在桌面建立几个 shell 脚本,这样点击打开就可以直接切换了
Asan
2015-10-30 07:49:54 +08:00
感谢 @robertlyc 的启发,感谢 Google ,这里有使用 jenv 管理多版本 java 的方法: http://scsidisk.github.io/2014/07/mac_install_multiple_versions_of_jdk/,亲试超级方便。前提是安装了 brew 。
Asan
2015-10-30 07:56:55 +08:00
Asan
2015-10-30 08:01:28 +08:00
dragonsunmoon
2015-11-25 18:30:44 +08:00
添加下面几行到 ~/.zshrc (如果你用 zsh) 或 ~/.bash_profile (如果你用默认的 shell)

export JAVA_6_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
export JAVA_HOME=$JAVA_8_HOME

alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk7='export JAVA_HOME=$JAVA_7_HOME'
alias jdk6='export JAVA_HOME=$JAVA_6_HOME'

在终端命令行下执行 jdk6 , jdk7, jdk8 来回切换

以上的 JAVA_HOME 根据你实际安装的路径做修改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/231836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX