java - releases - install gradle mac
Gradle encuentra JAVA_HOME incorrecto a pesar de que está configurado correctamente (13)
¿ JAVA_HOME
su JAVA_HOME
? Sin exportar, la configuración no se propagará a los comandos iniciados dentro de ese shell. Además, java -version
no usa JAVA_HOME
, sino que usa la primera java
encuentra en su ruta. Asegúrate de que tu .bashrc
tenga el siguiente aspecto:
JAVA_HOME=/path/to/java/home
export JAVA_HOME
Cuando intento ejecutar gradle, aparece el siguiente error:
# 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.
Sin embargo, cuando reviso la variable JAVA_HOME obtengo:
# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
Mi JAVA_HOME está definido en .bashrc y he verificado que esté configurado como fuente.
La ejecución de java -version
también confirma que JAVA_HOME está configurado correctamente y está en la RUTA.
# 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)
También he comprobado que /usr/bin/java
symlinks a /etc/alternatives/java
que a su vez se sincroniza correctamente con /usr/lib/jvm/java-7-oracle/jre/bin/java
Además, he comprobado que no hay definiciones duplicadas de JAVA_HOME en .bash_profile
o /etc/profile
.
Entonces mi pregunta es ¿cómo / por qué Gradle encuentra /usr/lib/jvm/default-java
, y más importante aún, cómo lo señalo al directorio correcto?
Otros programas que requieren el JDK funcionan bien, así que creo que es un problema de Gradle. También intenté reinstalar Gradle, lo que no hizo diferencia.
Estoy ejecutando Xubuntu de 64 bits (base Ubuntu 13.10)
En mi dockercontainer (siendo mínimo el problema de no encontrar java) fue que ese "which" no estaba instalado. Combinando un proyecto usando gradlew usó el cual en ./gradlew para encontrar Java que instaló que resolvió el problema.
Intenta instalar la última versión de gradle
,
sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt-get install gradle
Si instalamos desde ubuntu repo, instalará la versión anterior (para mí fue gradle 1.4). En versiones anteriores, establece java home desde gradle como export JAVA_HOME=/usr/lib/jvm/default-java
. La última versión no tiene este problema.
La solución es hacer JAVA_HOME == dir por encima de bin donde javac vive como en
type javac
javac is /usr/bin/javac # now check if its just a symlink
ls -la /usr/bin/javac
/usr/bin/javac -> /etc/alternatives/javac # its a symlink so check again
ls -la /etc/alternatives/javac # now check if its just a symlink
/etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
OK, así que finalmente encontré el contenedor por encima del javac real, así que haz esto
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
Me enfrenté a este problema cuando ejecuto el siguiente comando en Ubuntu:
ionic build android
Para resolver este problema, hice los siguientes pasos:
ln -sf /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java /usr/lib/jvm/default-java
Agregue JAVA_HOME a / etc / environment:
vi /etc/environment
Añadir:
JAVA_HOME="/usr/lib/jvm/default-java"
Después de guardar, léalo:
source /etc/environment
Finalmente, puede ejecutar el comando de compilación.
Para mí, el problema fue un conjunto explícito en la sección de argumentos de la configuración de herramientas externas en Eclipse.
Para mí, este error se debió a la razón por la cual Gradle estaba instalado como sudo y yo estaba intentando como usuario predeterminado ejecutar Gradle.
Tratar:
sudo gradle -version
o
sudo gradle -v
Resulta que el particular binario de Gradle que descargué del repositorio de Ubuntu 13.10 intenta exportar JAVA_HOME. Gracias a Lucas por sugerir esto.
/usr/bin/gradle
línea 70:
export JAVA_HOME=/usr/lib/jvm/default-java
Al comentar esta línea, se resuelve el problema y Gradle encuentra la ruta correcta al binario de Java.
Si solo descargas el binario de su website , no tiene este problema. Es un problema con la versión del repositorio de Ubuntu. También parece haber algunos otros problemas con la versión 13.10.
También puede ir a la carpeta bin dentro de la carpeta de instalación de gradle y corregir el parámetro JAVA_HOME en el archivo gradle.bat. En mi caso, mi JAVA_HOME se configuró en c: / Archivos de programa / java / bin El JAVA_HOME en gradle.bat se configuró en% JAVA_HOME% / bin / java.exe.
Corregí el JAVA_HOME en gradle.bat y funcionó.
¡¡¡Gracias!!!
Tuve el mismo problema, pero no encontré el comando de exportación en la línea 70 en el archivo gradle para la última versión 2.13, pero entiendo un error tonto, es decir,
Si no encuentra la línea 70 con el comando de exportación en el archivo gradle en su carpeta gradle / bin /, entonces verifique su ~ / .bashrc, si encuentra export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java
, luego elimine /bin/java
de esta línea, como JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64
, y en ruta >>> en lugar de esta export PATH=$PATH:$HOME/bin:JAVA_HOME/
, se export PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java
. Luego ejecute source ~/.bashrc
.
El motivo es que si revisa su archivo gradle, lo encontrará en la línea 70 (si no hay comando de exportación) o en la línea 75,
JAVACMD="$JAVA_HOME/bin/java" fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Eso significa que
/bin/java
ya está allí, por lo que debe restarse de la rutaJAVA_HOME
.
Eso sucedió en mi caso.
Tuve un problema con esto también. Dice el directorio incorrecto cuando era correcto. Así que acabo de crear una variable local con el nombre JAVA_HOME omitiendo el final / bin / java. Funcionó bien para mí
agregar un enlace simbólico
sudo ln -s /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java
sudo ln -s /usr/lib/jvm/java-7-oracle/jre /usr/lib/jvm/default-java
Crea un enlace simbólico al directorio java predeterminado.
Puede encontrar su directorio java por
readlink -f $(which java)
# outputs: /usr/lib/jvm/java-7-oracle/jre/bin/java
# Remove the last `/bin/java` and use it in above symbolic link command.