參考鏈接: 設置Java環境
Mac是基于Unix的,所有先來幾個常識與命令:?
?
Unix中雙引號單引號反引號(" ' `)的區別?
?
??
? Unix中雙引號起到“弱引用”的作用:被引用的字符大部分被按照字符字面的意思解釋執行,除了了$,\,`字符除外。?
? [因為弱,所以要“雙”引號]??
? Unix中單引號起到“強引用”的作用:被引用的字符全部被按照字符字面的意思解釋執行。?
? [因為強,所以要“單”引號就夠了]??
? Unix中反引號起到“反引用”的作用:被引用的字符全部被按照字符代表的命解釋執行,通常用于命令替換。?
? [因為要反過來解釋,所以要“反”引號]??
? 例子:?
? echo “$HOME”?
? output:打印HOME變量代表的值。?
? echo ’$HOME‘?
? output:打印$HOME。?
? echo "the date today is `date`"?
? output: the date today is +date 命令的結果?
? 命令替換:`date`先于echo執行,結果替換到echo中。??
? ?
? echo 'the date today is `date`‘?
? output: the date today is `date`?
??
?source命令??
?
? 一、首先查看shell版本 使用命令echo $SHELL 如果輸出的是:csh或者是tcsh,就是C Shell。 如果輸出的是:bash,sh,zsh,就是Bourne Shell的一個變種。 Mac OS X 10.3之后默認的是Bourne Shell。 Mac OS X 10.2之前默認的是C Shell,使用的命令是setev。 二、針對Bourne Shell添加環境變量 1.創建并以 TextEdit 的方式打開 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增環境變量 export PATH="$HOME/.rbenv/bin:$PATH" 3.讓以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有時可能需要關閉當前 Terminal 窗口重新開啟一個) echo $PATH 需要注意的一點(冒號乃環境變量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多個環境變量的話,需按照如下的方式來書寫: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"? 三、針對Bourne Shell刪除環境變量 若要刪除環境變量:unset DYLD_LIBRARY_PATH,其中DYLD_LIBRARY_PATH(環境變量名) 刪除環境變量之后需要先logout,關閉terminal,再重新打開terminal? 四、針對Bourne Shell恢復環境變量 PATH=$(getconf PATH),執行此命令將環境變量恢復到系統初始值 source命令(從 C Shell 而來)是bash shell的內置命令。點命令,就是一個點符號,(從Bourne Shell而來)是source的另一名稱。同樣的,當前腳本中設置的變量也將作為腳本的環境,source(或點)命令通常用于重新執行剛修改的初始化文件,如 .bash_profile 和 .profile 等等。例如,如果在登錄后對 .bash_profile 中的 EDITER 和 TERM 變量做了修改,則可以用source命令重新執行 .bash_profile 中的命令而不用注銷并重新登錄。把兩個命令用&&聯接起來,如 make mrproper &&make menuconfig ,表示要第一個命令執行成功才能執行第二個命令。 在編譯核心時,常常要反復輸入一長串命令,如 make mrproper make menuconfig make dep make clean make bzImage .......?
??
?Mac OS增刪環境變量?
?
? 一、首先查看shell版本 使用命令echo $SHELL 如果輸出的是:csh或者是tcsh,就是C Shell。 如果輸出的是:bash,sh,zsh,就是Bourne Shell的一個變種。 Mac OS X 10.3之后默認的是Bourne Shell。 Mac OS X 10.2之前默認的是C Shell,使用的命令是setev。 二、針對Bourne Shell添加環境變量 1.創建并以 TextEdit 的方式打開 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增環境變量 export PATH="$HOME/.rbenv/bin:$PATH" 3.讓以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有時可能需要關閉當前 Terminal 窗口重新開啟一個) echo $PATH 需要注意的一點(冒號乃環境變量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多個環境變量的話,需按照如下的方式來書寫: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 三、針對Bourne Shell刪除環境變量 若要刪除環境變量:unset DYLD_LIBRARY_PATH,其中DYLD_LIBRARY_PATH(環境變量名) 刪除環境變量之后需要先logout,關閉terminal,再重新打開terminal 四、針對Bourne Shell恢復環境變量 PATH=$(getconf PATH),執行此命令將環境變量恢復到系統初始值?
??
??
? Mac添加環境變量的三種方法?
??
? ?法一: sudo vi /etc/paths 來編輯 paths,將環境變量添加到 paths 中。 vim 是一個編輯器,另外還有幾個,如:Pico,Emacs。 Hint:輸入環境變量時,不用一個一個地輸入,只要拖動文件夾到 Terminal 里就可以了。 法二: 1.創建一個文件: sudo touch /etc/paths.d/mysql 2.用 vim 打開這個文件(如果是以 open -t 的方式打開,則不允許編輯): sudo vim /etc/paths.d/mysql 3.編輯該文件,鍵入路徑并保存(關閉該 Terminal 窗口并重新打開一個,就能使用 mysql 命令了) /usr/local/mysql/bin 據說,這樣可以自己生成新的文件,不用把變量全都放到 paths 一個文件里,方便管理。 法三: 1.創建并以 TextEdit 的方式打開 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增環境變量 export PATH="$HOME/.rbenv/bin:$PATH" 3.讓以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有時可能需要關閉當前 Terminal 窗口重新開啟一個) echo $PATH 需要注意的一點(冒號乃環境變量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多個環境變量的話,需按照如下的方式來書寫: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"?
? ?
??
??
? Mac上的Java究竟在哪兒?
??
? ?習慣了在Windows下開發的朋友,初次在Mac下進行Java編程開發對其安裝位置都要糾結半天。這里作如下說明 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】才是真正的工作者啊,繞吧?
? ?
? $JAVA_HOME環境變量在Mac OS X中設置的問題?
? ?
? ? Mac OSX新版本(10.5+)之后,已經建議$JAVA_HOME的設置用 /usr/libexec/java_home,因為java_home 可以根據你的需要返回指定的版本。?
? ? 1、默認是查看當前版本:?
? ??
? ??
? ? ?
? ? ??
? ? ? ?1 $ /usr/libexec/java_home?
? ? ??
? ? ??
? ? ? ?2 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home?
? ? ??
? ? ?
? ??
? ? 2、-V (大寫)參數可以列出所有的版本:?
? ??
? ? ?
? ? ??
? ? ? ?1 $ /usr/libexec/java_home -V?
? ? ??
? ? ??
? ? ? ?2 Matching Java Virtual Machines (5):?
? ? ??
? ? ??
? ? ? ?3? ? ?1.7.0_25, x86_64:? ?"Java SE 7"/Library/Java/JavaVirtualMachines/jdk1.7.0_25.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? ? ?1.6.0_37-b06-434, x86_64:? ?"Java SE 6"/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home?
? ? ??
? ? ??
? ? ? ?7? ? ?1.6.0_37-b06-434, i386: "Java SE 6"/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home?
? ? ??
? ? ??
? ? ? ?8? ?
? ? ??
? ? ??
? ? ? ?9 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home?
? ? ??
? ? ?
? ??
? ? 3、-a 參數可以根據CPU的類型過濾?
? ??
? ? ?
? ? ??
? ? ? ?1 $ /usr/libexec/java_home -a i386?
? ? ??
? ? ??
? ? ? ?2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home?
? ? ??
? ? ??
? ? ? ?3 $ /usr/libexec/java_home -a x86_64?
? ? ??
? ? ??
? ? ? ?4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home?
? ? ??
? ? ?
? ??
? ? 4、-d 參數可以過濾 32位、64位?
? ??
? ? ?
? ? ??
? ? ? ?1 $ /usr/libexec/java_home -d 32?
? ? ??
? ? ??
? ? ? ?2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home?
? ? ??
? ? ??
? ? ? ?3 $ /usr/libexec/java_home -d 64?
? ? ??
? ? ??
? ? ? ?4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home?
? ? ??
? ? ?
? ??
? ? 5、-v (小寫)參數可以過濾版本:?
? ??
? ? ?
? ? ??
? ? ? ?1 micmiu-mbp:~ micmiu$ /usr/libexec/java_home -v 1.6?
? ? ??
? ? ??
? ? ? ?2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home?
? ? ??
? ? ??
? ? ? ?3 micmiu-mbp:~ micmiu$ /usr/libexec/java_home -v 1.7?
? ? ??
? ? ??
? ? ? ?4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home?
? ? ??
? ? ?
? ??
? ? 以后就可以在~/.profile? 中按照如下方法自定義$JAVA_HOME:?
? ??
? ? ?
? ? ??
? ? ? ?1 #指定默認版本?
? ? ??
? ? ??
? ? ? ?2 export JAVA_HOME=`/usr/libexec/java_home`?
? ? ??
? ? ??
? ? ? ?3 export JAVA_HOME=$(/usr/libexec/java_home)?
? ? ??
? ? ??
? ? ? ?4 #指定自定義版本?
? ? ??
? ? ??
? ? ? ?5 export JAVA_HOME=`/usr/libexec/java_home -d 64 -v 1.6`?
? ? ??
? ? ??
? ? ? ?6 export JAVA_HOME=$(/usr/libexec/java_home -d 64 -v 1.6)