在Mac下安裝Eclipse插件svnEclipse插件后,每次打開Eclipse都會彈出如下彈出框:
提示你本機缺少JavaHL Library。
選擇Eclipse→偏好設置(preference)→Team→SVN,可以看到SVN接口Client的定義如下:
這說明當前系統中缺少JavaHL,需要我們手動安裝。
subeclipse官網(http://subclipse.tigris.org/wiki/JavaHL 打開可能會非常慢)給出的介紹說有兩種方式可以在Mac電腦上(OS X)上安裝JavaHL Library,一種是通過MacPort,一種是通過HomeBrew的形式。如圖所示:
這里我們主要介紹使用HomeBrew實行安裝。
步驟1:安裝HomeBrew:
HomeBrew的安裝需要依賴XCode和Commond Line,具體的安裝步驟如下:
HomeBrew的安裝過程介紹網上也有很多教程,比如:
http://brew.sh/ --官網
http://www.jb51.net/os/MAC/101860.html
http://www.cnblogs.com/liulipeng/p/3938518.html
就不更多介紹了,如果安裝過程遇到了問題,百度下基本都能解決的。
步驟2:執行命令,安裝JavaHL
進入終端,鍵入如下命令:
brew install --universal --java subversion
但是會遇到如下問題,提示有個包下不到,原因你懂得,被牆了。
==> Downloading https://www.apache.org/dyn/closer.cgi?path=subversion/subversion
Already downloaded: /Library/Caches/Homebrew/subversion-1.8.13.tar.bz2
==> Patching
patching file configure
Hunk #1 succeeded at 25386 (offset 20 lines).
patching file subversion/bindings/swig/perl/native/Makefile.PL.in
==> Downloading https://serf.googlecode.com/svn/src_releases/serf-1.3.8.tar.bz2
curl: (7) Failed to connect to serf.googlecode.com port 443: Operation timed out
Error: Failed to download resource "subversion--serf"
Download failed: https://serf.googlecode.com/svn/src_releases/serf-1.3.8.tar.bz2
這個問題也有解決的辦法,那就是下載對應的包,放在對應的目錄下,這樣就能再安裝JavaHL的過程中跳過serf-1.3.8.tar.bz2的下載了。
步驟2.1:下載serf-1.3.8.tar.bz2包:
http://download.csdn.net/detail/shanwenchao/8653245
下載后放在任意目錄,將名稱修改為:subversion--serf-1.3.7.tar.bz2
步驟2.2:將改名后的該文件放在目錄下:
將修改后的文件放在/Library/Caches/Homebrew目錄下。
步驟2.3:重新執行安裝命令,安裝JavaHL:
brew install --universal --java subversion
這是就不會下載而是直接從文件目錄中取該包了。如下過程:
brew install --universal --java subversion Warning: subversion: --java was deprecated; using --with-java instead! ==> Downloading https://www.apache.org/dyn/closer.cgi?path=subversion/subversion Already downloaded: /Library/Caches/Homebrew/subversion-1.8.13.tar.bz2 ==> Patching patching file configure Hunk #1 succeeded at 25386 (offset 20 lines). patching file subversion/bindings/swig/perl/native/Makefile.PL.in ==> Downloading https://serf.googlecode.com/svn/src_releases/serf-1.3.8.tar.bz2 Already downloaded: /Library/Caches/Homebrew/subversion--serf-1.3.8.tar.bz2 ==> /usr/local/opt/scons/bin/scons PREFIX=/usr/local/Cellar/subversion/1.8.13/li ==> /usr/local/opt/scons/bin/scons install ==> ./configure --prefix=/usr/local/Cellar/subversion/1.8.13 --with-zlib=/usr --with-sqlite=/usr/local/opt/sqlite --with-serf=/usr/local/Cellar/subversion/1.8.13/libexec/serf --disa ==> make ==> make install ==> make tools ==> make install-tools ==> make javahl ==> make install-javahl ==> Caveats svntools have been installed to: /usr/local/opt/subversion/libexec You may need to link the Java bindings into the Java Extensions folder: sudo mkdir -p /Library/Java/Extensions sudo ln -s /usr/local/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib Bash completion has been installed to: /usr/local/etc/bash_completion.d ==> Summary 🍺 /usr/local/Cellar/subversion/1.8.13: 119 files, 18M, built in 11.3 minutes
整個安裝過程會持續很長時間,千萬不要中途關掉終端。
步驟2.4:執行命令綁定Java環境和Java延伸目錄的關系:
正如上面安裝過程最后提示的那樣:
You may need to link the Java bindings into the Java Extensions folder: sudo mkdir -p /Library/Java/Extensions sudo ln -s /usr/local/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib
依次在終端中執行上面兩句命令,整個安裝過程就完成了。
安裝后,在進入Eclipse查看SVN Client的配置如下:
問題解決~!
縱觀整個安裝過程,簡要來說分為如下過程:
1:安裝Brew;
2:下載包,改名,放在指定目錄下;
3:執行安裝命令,及其補充命令;
網上大多數介紹解決JavaHL not available的帖子都只介紹了第一步和第三部,卻少了第二部,不知道他們是不是都是翻牆安裝或者是在國外安裝的所以沒有遇到被牆導致不能下載對應文件的問題。現加入步驟2,希望能夠幫助大家解決該問題。
參考介紹:
http://bbs.csdn.net/topics/390972167
http://ju.outofmemory.cn/entry/90475