Домашняя переменная Intellij JAVA
Я начал использовать Gradle и Intellij, но у меня возникли проблемы с настройкой JVM Gradle. Когда я начинаю новый проект Gradle, мне не разрешается определять JVM как мою переменную JAVA_HOME. Следующие скриншоты показывают, что происходит:
как вы можете видеть Intellij говорит, что моя переменная JAVA_HOME не определена, однако если я наберу echo $JAVA_HOME
Я могу получить мой каталог Java, в моем случае:/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
мой ./~bash_profile является настроено как следовать:
export JAVA_HOME=$(/usr/libexec/java_home)
кто-то может понять, что происходит ? Спасибо!
5 ответов:
проблема в том, что ваш "проект SDK" нет! Добавьте "Project SDK", нажав кнопку " Создать ..."и выберите путь JDK. И тогда все должно быть в порядке.
немного интуитивно понятный, но вы должны сначала настроить SDK для проектов Java. В правом нижнем углу экрана приветствия IntelliJ выберите "Настройка > параметры проекта > структура проекта".
на вкладке Проект слева будет показано, что у вас нет выбранного SDK:
поэтому необходимо нажать кнопку ' Создать... кнопка справа от выпадающего списка и указать его в свой пакет. После этого вы можете вернуться на экран импорта, и он должен быть заполнен вашим Переменная JAVA_HOME, если у вас есть этот набор.
Если вы хотите, чтобы ваш JAVA_HOME был распознан intellij, вы можете сделать одно из следующих действий:
- запустите intellij из терминала / приложения / IntelliJ IDEA 14.app / Contents / MacOS (это будет выбрать ваши переменные bash env)
- добавить переменную env входа, выполнив:
launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
чтобы напрямую ответить на ваш вопрос, вы можете добавить строку launchctl в свой ~/.файл
Как ответили другие, вы можете игнорировать JAVA_HOME, установив up SDK в структуре проекта.
в моем случае мне нужен был более низкий JRE, поэтому мне пришлось сказать IntelliJ использовать другой в "настройках платформы"
- Настройки Платформы > SDKs (⌘+;)
- выберите + кнопка для добавления нового SDK (или переименования и загрузки существующего)
- выберите каталог / Contents / Home из соответствующего SDK
(т. е. / Library/Java/JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home)
до сих пор никто не ответил на вопрос.
кто-то может понять, что происходит ?
проблема здесь в том, что в то время как стоимостью вашего
$JAVA_HOME
правильно, определена не в том месте.
- когда вы открываете терминал и запускаете сеанс Bash, он будет читать . Таким образом, при вводе
echo $JAVA_HOME
, он вернет значение, которое имеет был установлен там.- когда вы запускаете IntelliJ напрямую, он будет не читать
~/.bash_profile
... почему это должно быть? Так что для IntelliJ эта переменная не задана.есть два возможных решения проблемы:
- запуск IntelliJ из сеанса Bash: откройте терминал и запустите
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
. Элементidea
процесс наследует любые переменные среды Bash, которые былиexport
ed. (Так как вы сделалиexport JAVA_HOME=…
, это работает!), или сложные образом:установите глобальные переменные среды, которые применяются ко всем программам, а не только к сеансам Bash. Это сложнее, чем вы могли бы подумать, и объясняется здесь и здесь, например. Что вы должны сделать, это запустить
/bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)
однако это сбрасывается после перезагрузки. Чтобы убедиться, что это запускается при каждой загрузке, выполните
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
обратите внимание, что это также влияет на процесс терминала, поэтому нет необходимости ставить все что угодно в вашем
~/.bash_profile
.