【转】在MAC上查找和设置$JAVA_HOME

来源:互联网 发布:知乎豆瓣天涯 编辑:程序博客网 时间:2024/05/08 13:40

http://guibin.iteye.com/blog/1999238


在MAC上查找和设置$JAVA_HOME

guibin.beijing@gmail.com

 

最近升级了MAC OS,装了JDK7 for mac,在这里下载JDK7 for mac,装完之后发现在默认的路径下找不到JDK7的HOME,如下所示:

Shell代码  收藏代码
  1. $ which java  
  2. /usr/bin/java  
  3.   
  4. $ ls -l /usr/bin/java  
  5. lrwxr-xr-x  1 root  wheel  74 Jan  4 20:24 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java  
  6.   
  7. $ ls -l /System/Library/Frameworks/JavaVM.framework/Versions  
  8. total 64  
  9. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.4 -> CurrentJDK  
  10. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.4.2 -> CurrentJDK  
  11. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.5 -> CurrentJDK  
  12. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.5.0 -> CurrentJDK  
  13. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.6 -> CurrentJDK  
  14. lrwxr-xr-x  1 root  wheel   10 Jan  4 20:24 1.6.0 -> CurrentJDK  
  15. drwxr-xr-x  7 root  wheel  238 Jan  4 20:25 A  
  16. lrwxr-xr-x  1 root  wheel    1 Jan  4 20:24 Current -> A  
  17. lrwxr-xr-x  1 root  wheel   59 Jan  4 20:24 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents  

 

可是查看java的版本确实是1.7,如下:

Shell代码  收藏代码
  1. $ java -version  
  2. java version "1.7.0_45"  
  3. Java(TM) SE Runtime Environment (build 1.7.0_45-b18)  
  4. Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)  

 

google了一下,发现了这篇文章Important Java Directories on Mac OS X,可以使用工具命令“/usr/libexec/java_home”来定位JAVA_HOME,这下爽了:

Shell代码  收藏代码
  1. $ cat ~/.profile  
  2.   
  3. JAVA_HOME=`/usr/libexec/java_home`  
  4. export JAVA_HOME  
  5.   
  6. $ echo $JAVA_HOME  
  7. /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home  

 

 另外可以使用-V选项列出所有版本的JAVA_HOME:

Shell代码  收藏代码
  1. $ /usr/libexec/java_home -V  
  2. Matching Java Virtual Machines (3):  
  3.     1.7.0_45, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home  
  4.     1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  
  5.     1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  
  6.   
  7. /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home  
0 0