http://blog.csdn.net/shallowgrave/article/details/39367119
配置Java環境,添加環境變量這一步:
- export JAVA_HOME=/usr/java/latest
- export CLASSPATH=.:$JAVA_HOME
- export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binexport CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
之前是linux環境下配置的,現在換到另一個類Unix系統MacOS下來,想來也是類似的。只要找到JDK的真實安裝路徑即可。
剛好之前在配置maven依賴的JDK依賴有點類似經驗。
- shuchen-2:bin seishuchen$ which java
- /usr/bin/java
- shuchen-2:bin seishuchen$ ls -la /usr/bin/java
- lrwxr-xr-x 1 root wheel 74 Mar 4 2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
- shuchen-2:bin seishuchen$
很快找到了當前JDK的真實路徑。查看路徑名發現,有Versions字段還有Current字段,作為一個程序猿,這點敏感還是有的。
馬上切換到Versions目錄下面,查看:
- shuchen-2:Versions seishuchen$ cd /System/Library/Frameworks/JavaVM.framework/Versions
- shuchen-2:Versions seishuchen$ ls -al
- total 72
- drwxr-xr-x 12 root wheel 408 Jul 15 17:13 .
- drwxr-xr-x 12 root wheel 408 Apr 11 15:10 ..
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.4 -> CurrentJDK
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.4.2 -> CurrentJDK
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.5 -> CurrentJDK
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.5.0 -> CurrentJDK
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.6 -> CurrentJDK
- lrwxr-xr-x 1 root wheel 10 Mar 4 2014 1.6.0 -> CurrentJDK
- drwxr-xr-x 8 root wheel 272 Mar 4 2014 A
- lrwxr-xr-x 1 root wheel 1 Mar 4 2014 Current -> A
- lrwxr-xr-x 1 root wheel 58 Jul 15 17:12 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents
- lrwxr-xr-x 1 root wheel 59 Mar 4 2014 CurrentJDK_BAK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
結果很明顯,有木有,原來都指向了/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents
那么就切換過去瞅瞅唄。
- shuchen-2:Versions seishuchen$ cd /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents
- shuchen-2:Contents seishuchen$ ls
- Home Info.plist MacOS
- shuchen-2:Contents seishuchen$ cd Home/
- shuchen-2:Home seishuchen$ ls
- COPYRIGHT bin man
- LICENSE db release
- README.html include src.zip
- THIRDPARTYLICENSEREADME-JAVAFX.txt jre
- THIRDPARTYLICENSEREADME.txt lib
- shuchen-2:Home seishuchen$
看到了久違的JDK安裝目錄了不是。好了,我們的JAVA_HOME即是/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home。
過程看着挺復雜的樣子,當然這個是對於一個最原始的方法,如果你熟悉Mac的話,其實有個獲得JAVA_HOME的自帶小工具,直接在命令行
輸入/usr/libexec/java_home來獲得。
- shuchen-2:Home seishuchen$ /usr/libexec/java_home
- /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
- shuchen-2:Home seishuchen$
那么接下來只要修改配置文件使之生效即可。根據你的需求,可以選擇修改不同的環境變量配置文件。
而筆者只是修改當前用戶的即可。只要在~/.profile(mac下也可以編輯~/.bashrc,但~/.bash_profile就不確定了,感興趣的可以自己事先)
加入:
- JAVA_HOME=`/usr/libexec/java_home`
- export JAVA_HOME
- export CLASSPATH=.:$JAVA_HOME
- export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
- export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
接着source ~/.profile ,好了,收工。
執行Hbase啟動腳本,用jps查看一下情況,發現一切是那么完美,哦哈哈
1. Mac下當你在【終端】輸入java -version時,是執行的哪里的java呢,which java命令可以看到,就是【/usr/bin/java】
2. 【/usr/bin/java】只是個替身,實際指向【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】,如圖,ls -l java就可以看到
3. 第2點提到的【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】其實也不是真正的java,因為Current文件夾是替身,它指向了同目錄下的某個版本,例如A文件夾,如下圖:(這樣的好處是裝了多個版本java后,可以方便地調整Current指向,使得不同版本java變成系統默認的,通常在【實用工具】->【Java偏好設置】里可以調整)
4.第3點提到的A文件夾是安裝java后系統生成的。它里面的Commands文件夾下有個java可執行文件,這個java其實調用了真真正正的java原身–>【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】(你試試把這個java改個名,再在終端里輸入java就明白了哦)
PS:這里的版本號(1.6.0_37-b06-434)不同的機器可能不一樣,也可能會存在多個版本,這就看你機器上裝了多少個版本的java了
5. 歸根到底,【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】才是真正的工作者啊