J'ai commencé à utiliser Gradle et Intellij, mais je rencontre des problèmes pour configurer la machine virtuelle Java de Gradle. Lorsque je commence un nouveau projet Gradle, je ne suis pas autorisé à définir JVM en tant que variable Java_HOME. Les captures d'écran suivantes montrent ce qui se passe:
Comme vous pouvez le voir, Intellij indique que ma variable Java_HOME n'est pas définie. Cependant, si je tape echo $Java_HOME
, je peux obtenir mon répertoire Java, dans mon cas: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Mon ./~bash_profile est configuré comme suit: export Java_HOME=$(/usr/libexec/Java_home)
Quelqu'un peut comprendre ce qui se passe? Je vous remercie!
Le problème est que votre "Project SDK" n’en est pas un! Ajoutez un "Project SDK" en cliquant sur "Nouveau ..." et choisissez le chemin du JDK. Et puis ça devrait aller.
Un peu contre-intuitif, mais vous devez d’abord installer un SDK pour les projets Java. En bas à droite de l'écran d'accueil d'IntelliJ, sélectionnez "Configurer> Paramètres par défaut du projet> Structure du projet".
L'onglet Projet à gauche montrera que vous n'avez pas sélectionné de SDK:
Par conséquent, vous devez cliquer sur le bouton "Nouveau ..." situé à droite du menu déroulant et le diriger vers votre JDK. Après cela, vous pouvez revenir à l'écran d'importation et il devrait être rempli avec votre variable Java_HOME, à condition que vous ayez cet ensemble.
Si vous souhaitez que votre Java_HOME soit reconnu par intellij, vous pouvez effectuer l’une des opérations suivantes:
launchctl setenv Java_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
Pour répondre directement à votre question, vous pouvez ajouter la ligne launchctl dans votre ~/.bash_profile
Comme d'autres personnes vous ont répondu, vous pouvez ignorer Java_HOME en configurant le SDK dans la structure du projet.
Dans mon cas, j'avais besoin d'un JRE plus bas, donc je devais dire à IntelliJ d'en utiliser un autre dans "Paramètres de la plate-forme".
Jusqu'à présent, personne n'a répondu à la question.
Quelqu'un peut comprendre ce qui se passe?
Le problème est qu’alors que la valeur de votre _$Java_HOME
_ est correcte , vous l’avez définie au mauvais endroit .
~/.bash_profile
_ sera lu. Ainsi, lorsque vous entrez _echo $Java_HOME
_, la valeur qui y a été définie est renvoyée.~/.bash_profile
_… pourquoi le devrait-il? Donc, pour IntelliJ, cette variable n'est pas définie.Il y a deux solutions possibles à cela:
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
_. Le processus idea
héritera de toutes les variables d'environnement de Bash ayant été export
ed. (Depuis que vous avez fait _export Java_HOME=…
_, ça marche!), Ou de manière sophistiquée:Définissez des variables d'environnement globales qui s'appliquent à tous les programmes, pas seulement aux sessions Bash. Ceci est plus compliqué que vous ne le pensez, et est expliqué ici et ici , par exemple. Ce que vous devriez faire, c'est courir
_/bin/launchctl setenv Java_HOME $(/usr/libexec/Java_home)
_
Cependant, cela est réinitialisé après un redémarrage. Pour vous assurer que cela est exécuté à chaque démarrage, exécutez
_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
_
Notez que ceci affecte également le processus du terminal, il n’est donc pas nécessaire de mettre quoi que ce soit dans votre _~/.bash_profile
_.