首先,谢谢你的问题,我需要自己解决这个问题。
这是我学到的。。
whereis java
指着/usr/bin/java
/usr/bin/java
是一个符号链接/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
- 在我的 Mac 上,
/System/Library/Frameworks/JavaVM.framework/Versions/Current
是指向 的符号链接/System/Library/Frameworks/JavaVM.framework/Versions/A
,目前是 Java 1.7.0._07-b10
我们需要做的是重定向Current
到我们想要使用的 JVM。
在我的系统上,Java 1.6.0_37 安装在 中/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
,这是指向的符号链接/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
我所做的是...
备份Current
sudo mv Current Current.bak
创建一个新的符号链接到CurrentJDK
sudo ln -s CurrentJDK Current
然后在命令行,我做java -version
了并得到了
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
现在,要将其移回,我只需将Current
sudo mv Current Current.1.6
然后重新链接Current
到A
sudo ln -s A Current
然后在命令行,我做java -version
了并得到了
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
现在我需要做的就是向后移动sudo mv Current Current.1.7
并sudo mv Current.1.6 Current
反转它以向前移动。
该解决方案的灵感来自https://discussions.apple.com/thread/4444438?start=0&tstart=0,但我不得不尝试使用它来确保 ;)
更新
在玩了一些之后,我创建了一个java6
符号链接,它位于/usr/bin/java6
并指向/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands/java
,这基本上允许我java6
从命令行执行而无需切换版本