valid the not jdk intellij idea home for configurar java intellij-idea

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 ingrese echo $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 de idea heredará cualquier variable de entorno de Bash que se haya export . (Dado que export 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.