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