the - Intellij JAVA_HOME variable
configurar jdk intellij idea (5)
Bit contra-intuitivo, pero primero debe configurar un SDK para proyectos Java. En la parte inferior derecha de la pantalla de bienvenida de IntelliJ, seleccione ''Configurar> Valores predeterminados del proyecto> Estructura del proyecto''.
La pestaña Proyecto a la izquierda mostrará que no tiene SDK seleccionado:
Por lo tanto, debe hacer clic en el botón ''Nuevo ...'' en el lado derecho del menú desplegable y apuntarlo a su JDK. Después de eso, puede volver a la pantalla de importación y debe rellenarse con su variable JAVA_HOME, siempre que tenga este conjunto.
Comencé a usar Gradle e Intellij pero tengo problemas para configurar la JVM de Gradle. Cuando comienzo un nuevo proyecto de Gradle, no tengo permitido definir JVM como mi variable JAVA_HOME. Las siguientes capturas de pantalla muestran lo que está sucediendo:
Como puede ver, Intellij dice que mi variable JAVA_HOME no está definida, sin embargo, si escribo
echo $JAVA_HOME
, puedo obtener mi directorio Java, en mi caso:
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Mi ./~bash_profile está configurado de la siguiente manera:
export JAVA_HOME=$(/usr/libexec/java_home)
Alguien puede darse cuenta de lo que está sucediendo? ¡Gracias!
El problema es que su "Proyecto SDK" es ninguno. Agregue un "Proyecto SDK" haciendo clic en "Nuevo ..." y elija la ruta de JDK. Y entonces debería estar bien.
En mi caso, necesitaba un JRE más bajo, así que tuve que decirle a IntelliJ que usara uno diferente en "Configuración de la plataforma"
- Configuración de la plataforma> SDK ( ⌘ + ; )
- Haga clic en el botón + para agregar un nuevo SDK (o renombrar y cargar uno existente)
-
Elija el directorio / Contenido / Inicio del SDK apropiado
(es decir, /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home)
Hasta ahora, nadie ha respondido la pregunta real.
Alguien puede darse cuenta de lo que está sucediendo?
El problema aquí es que si bien el
valor
de su
$JAVA_HOME
es correcto
, lo definió
en el lugar incorrecto
.
-
Cuando abre una terminal e inicia una sesión de Bash, leerá el archivo
~/.bash_profile
. Por lo tanto, cuando ingreseecho $JAVA_HOME
, devolverá el valor que se ha establecido allí. -
Cuando ejecutas IntelliJ directamente,
no
leerá
~/.bash_profile
... ¿por qué debería hacerlo? Entonces, para IntelliJ, esta variable no está establecida.
Hay dos posibles soluciones para esto:
-
Inicie IntelliJ desde una sesión Bash: abra una terminal y ejecute
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
. El proceso deidea
heredará cualquier variable de entorno de Bash que se hayaexport
. (Dado queexport JAVA_HOME=…
, ¡funciona!), O de la manera sofisticada: -
Establezca variables de entorno global que se apliquen a todos los programas, no solo a las sesiones de Bash. Esto es más complicado de lo que piensas, y se explica here y here , por ejemplo. Lo que debes hacer es correr
/bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)
Sin embargo, esto se restablece después de un reinicio. Para asegurarse de que esto se ejecute en cada arranque, ejecute
cat << EOF > ~/Library/LaunchAgents/setenv.JAVA_HOME.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>setenv.JAVA_HOME</string> <key>ProgramArguments</key> <array> <string>/bin/launchctl</string> <string>setenv</string> <string>JAVA_HOME</string> <string>$(/usr/libexec/java_home)</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> EOF
Tenga en cuenta que esto también afecta el proceso de Terminal, por lo que no es necesario poner nada en su
~/.bash_profile
.
Si desea que intellij reconozca su JAVA_HOME, puede hacer una de estas cosas:
- Inicie su intellij desde la terminal / Aplicaciones / IntelliJ IDEA 14.app/Contents/MacOS (esto seleccionará sus variables bash env)
-
Agregue la variable env de inicio de sesión ejecutando:
launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
Para responder directamente a su pregunta, puede agregar la línea launchctl en su ~ / .bash_profile
Como otros han respondido, puede ignorar JAVA_HOME configurando SDK en la estructura del proyecto.