2012-12-24 26 views
1
Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "/usr/lib/jvm/java-6-openjdk-i386/jre" 

Erm ..但它指向一個JDK,在這裏打開JDK。我在這裏錯過了什麼嗎?在Ubuntu中安裝Clojure時出現錯誤。

+0

不,這是'jre'(Jave Runtime Environment),而不是JDK。相關:http://stackoverflow.com/questions/5736641/ant-unable-to-find-javac-java-home-wont-set-on-ubuntu/5736774#5736774 ...你真的安裝了JDK嗎? (不要問我爲什麼他們這樣打包) –

+0

我確實安裝了jdk。但它仍然不起作用。 – Hick

+0

然後你只需要正確設置你的'JAVA_HOME',而不是指向JRE。這個問題的其他答案解釋瞭如何。 –

回答

0

你可以只安裝leiningen(被包裝與Ubuntu)。這會給你一個與Clojure一起工作的很好的項目工具。它在每個軟件包的基礎上爲您啓動並提供clojure,這也意味着您有多個版本。

+2

請勿使用ubuntu軟件包管理器安裝leiningen ,只需從git運行腳本即可。 apt版本仍然在1.7.1。 (如果沒有首先檢查是否合理更新,請不要安裝軟件包)。 – Cubic

0

刪除路徑中的jre部分。這應該夠了吧。

它將成爲

"/usr/lib/jvm/java-6-openjdk-i386" 

而且布賴恩建議嘗試

sudo apt-get install openjdk-7-jdk 
+1

由於SO上的「close as duplicate」功能,您不應該複製/粘貼來自一個人標記的解決方案作爲副本... –

+0

是的..對不起... –

1

忽略所有建議添加/設置JAVA_HOME目錄的解決方案,它們都是錯誤的。如果你的.profile等有一套,請將其刪除。

Ubuntu(以及許多其他發行版,特別是基於debian的發行版)使用「替代」機制來提供更高級別的抽象來處理諸如同一軟件的多個版本或提供相同軟件的多個軟件包功能,如網頁瀏覽器。

如果您讓操作系統及其打包系統管理您的環境,則Ubuntu不需要JAVA_HOME設置。如果你手動安裝的東西,然後你自己並需要解決。

我懷疑最初只安裝了JRE,然後嘗試通過添加JAVA_HOME設置來解決問題,然後再安裝所需的JDK。如果是這種情況,請刪除您的JAVA_HOME設置,然後使用update-alternatives命令確保已經設置了正確的Java環境(有關詳細信息,請參閱手冊頁以瞭解更新 - 備用方案 - 非常簡單)。

有關使用lein的建議是IMO專注,我也建議使用腳本而不是打包版本。我也會推薦使用他的2.0預覽版本。它比較舊的1.x版本更穩定,更好。