問題
嘗試運作gradle時,出現以下錯誤:
# gradle
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
但是,當我檢查JAVA_HOME變量時,我得到:
# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
我的JAVA_HOME在.bashrc中定義,我已經仔細檢查過它是否被設定為源。
Runningjava -version也确認JAVA_HOME設定正确并且在PATH上。
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
我也檢查了那個/usr/bin/javasymlinks到/etc/alternatives/java,然後正确的符号連結到/usr/lib/jvm/java-7-oracle/jre/bin/java
另外,我已經檢查過在.bash_profile或/etc/profile中沒有重複的JAVA_HOME定義。
是以我的問題是如何/為什麼Gradle找到606156196,更重要的是我如何将它指向正确的目錄?
其他需要JDK工作的程式,是以我認為它是Gradle問題。我也嘗試重新安裝Gradle,沒有任何差別。
我正在運作64位Xubuntu(Ubuntu 13.10基礎)
#1 熱門回答(241 贊)
原來我從Ubuntu 13.10 repositoryitselftries下載下傳的特定Gradle二進制檔案導出JAVA_HOME。感謝Lucas提出這個建議。
/usr/bin/gradleline 70:
export JAVA_HOME=/usr/lib/jvm/default-java
注釋掉這一行解決了這個問題,Gradle找到了Java二進制檔案的正确路徑。
#2 熱門回答(45 贊)
添加符号連結
sudo ln -s /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java
#3 熱門回答(11 贊)
對我來說這個錯誤是由于Gradle安裝為sudo而我試圖作為預設使用者運作Gradle。
嘗試:
sudo gradle -version
要麼
sudo gradle -v