Ik ben begonnen met het gebruik van Gradle en Intellij, maar ik heb problemen met het configureren van Gradle’s JVM.
Wanneer ik een nieuw Gradle-project start, mag ik JVM niet definiëren als mijn JAVA_HOME-variabele. De volgende screenshots laten zien wat er gebeurt:
Zoals je kunt zien zegt Intellij dat mijn JAVA_HOME-variabele niet is gedefinieerd, maar als ik echo $JAVA_HOME
typ, kan ik mijn Java-directory krijgen, in mijn geval: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Mijn ./~bash_profile is als volgt geconfigureerd:
export JAVA_HOME=$(/usr/libexec/java_home)
Iemand kan achterhalen wat er gebeurt?
Bedankt!
Antwoord 1, autoriteit 100%
Beetje contra-intuïtief, maar je moet eerst een SDK instellen voor Java-projecten. Selecteer rechtsonder in het IntelliJ-welkomstscherm ‘Configure > Projectstandaarden > Projectstructuur’.
Het tabblad Project aan de linkerkant laat zien dat je geen SDK hebt geselecteerd:
Daarom moet u op de knop ‘Nieuw…’ aan de rechterkant van de vervolgkeuzelijst klikken en deze naar uw JDK verwijzen. Daarna kunt u teruggaan naar het importscherm en het moet worden gevuld met uw JAVA_HOME-variabele, op voorwaarde dat u deze hebt ingesteld.
Antwoord 2, autoriteit 58%
Het probleem is dat uw “Project SDK” geen is! Voeg een “Project SDK” toe door op “Nieuw …” te klikken en kies het pad van JDK. En dan zou het goed moeten zijn.
Antwoord 3, autoriteit 15%
Tot nu toe heeft niemand de eigenlijke vraag beantwoord.
Iemand kan achterhalen wat er aan de hand is?
Het probleem hier is dat terwijl de waardevan uw $JAVA_HOME
is correct, je hebt het op de verkeerde plaatsgedefinieerd.
- Als je een terminal opent en een Bash-sessie start, wordt het bestand
~/.bash_profile
gelezen. Dus als jeecho $JAVA_HOME
invoert, wordt de waarde geretourneerd die daar is ingesteld. - Als je IntelliJ rechtstreeks start, zal het niet
~/.bash_profile
lezen … waarom zou het? Dus voor IntelliJ is deze variabele niet ingesteld.
Hier zijn twee mogelijke oplossingen voor:
- Start IntelliJ vanuit een Bash-sessie: open een terminal en voer
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
uit. Hetidea
-proces neemt alle omgevingsvariabelen van Bash over die zijnexport
ed. (Sinds jeexport JAVA_HOME=…
hebt geëxporteerd, werkt het!), of, op de verfijnde manier: -
Stel globale omgevingsvariabelen in die van toepassing zijn op alle programma’s, niet alleen Bash-sessies. Dit is ingewikkelder dan je zou denken en wordt uitgelegd hieren hier, bijvoorbeeld. Wat u moet doen is uitvoeren
/bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)
Dit wordt echter gereset na een herstart. Om ervoor te zorgen dat dit bij elke opstart wordt uitgevoerd, voer je uit
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
Merk op dat dit ook het terminalproces beïnvloedt, dus het is niet nodig om iets in uw
~/.bash_profile
te plaatsen.
4
In mijn geval hielpen om Android Plugin te verwijderen – idee bleef me bewonderen om Android NDK in te stellen en liet me geen Java Default SDK veranderen – en omdat ik het niet ontwikkel voor Android zou ik het kunnen verwijderen.