В чем причина "ошибка:не удается определить исполняемый файл Java VM в выбранном JDK"?

Я использую IntelliJ IDEA 13.1.4, а также попробовал последнюю версию 14.

запуск SBT я получаю следующую ошибку:

Error:Cannot determine Java VM executable in selected JDK

у меня есть JDK 1.7, установленный на моей машине и на пути.

в логах (~/Library/Logs/IntelliJIdea14/idea.log на MacOS) есть следующая трассировка стека:

2014-11-03 11:22:05,054 [4896641]   WARN - nal.AbstractExternalSystemTask - Cannot determine Java VM executable in selected JDK
com.intellij.openapi.externalSystem.model.ExternalSystemException: Cannot determine Java VM executable in selected JDK
    at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun.apply(SbtExternalSystemManager.scala:97)
    at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun.apply(SbtExternalSystemManager.scala:97)
    at scala.Option.getOrElse(Option.scala:120)
    at org.jetbrains.sbt.project.SbtExternalSystemManager$.executionSettingsFor(SbtExternalSystemManager.scala:96)
    at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun$getExecutionSettingsProvider.apply(SbtExternalSystemManager.scala:54)
    at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun$getExecutionSettingsProvider.apply(SbtExternalSystemManager.scala:54)
    at org.jetbrains.sbt.package$$anon.fun(package.scala:29)
    at org.jetbrains.sbt.package$$anon.fun(package.scala:28)
    at com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.getExecutionSettings(ExternalSystemApiUtil.java:590)
    at com.intellij.openapi.externalSystem.service.ExternalSystemFacadeManager.a(ExternalSystemFacadeManager.java:201)
    at com.intellij.openapi.externalSystem.service.ExternalSystemFacadeManager.a(ExternalSystemFacadeManager.java:178)
    at com.intellij.openapi.externalSystem.service.ExternalSystemFacadeManager.doInvoke(ExternalSystemFacadeManager.java:133)
    at com.intellij.openapi.externalSystem.service.ExternalSystemFacadeManager$MyHandler.invoke(ExternalSystemFacadeManager.java:270)
    at com.sun.proxy.$Proxy57.getResolver(Unknown Source)
    at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil.execute(ExternalSystemUtil.java:475)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil.run(ExternalSystemUtil.java:543)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:609)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.run(ProgressManagerImpl.java:410)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.run(ProgressManagerImpl.java:194)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:281)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:233)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
    at com.intellij.openapi.application.impl.ApplicationImpl.run(ApplicationImpl.java:640)
    at com.intellij.openapi.application.impl.ApplicationImpl.run(ApplicationImpl.java:405)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor.run(PooledThreadExecutor.java:56)

что может быть причиной этого?

10 ответов


вы должны иметь возможность работать с ним, установив jdk из настроек, а не из диалогового окна открыть/импортировать проект.

на экране приветствия, перейдите к Configure -> Project defaults -> Project structure и добавьте jdk.

enter image description here

открытие проекта sbt должно работать хорошо.

найдено решение отсюда


другой способ установить JDK-из ваших текущих настроек модуля / проекта (для вашего текущего проекта)

выберитеOpen Module Settings в контекстном меню проекта (или по умолчанию нажмите F4),
затем на левой вкладке выберите Project и указать правильно Project SDK в выпадающем списке.

enter image description here


проблема обычно вызвана неправильной версией JDK в ".idea / sbt.xml", например:

<option name="jdk" value="1.7" />

этот параметр не обновляется соответствующим образом при изменении пакета SDK проекта, см. SCL-10085. Если у вас есть другой JDK (1.7 в моем примере), обычно настроенный, ошибка не произойдет, но SDK проекта будет молча изменен обратно. В противном случае, эта ошибка возникает.

проблема может быть легко решена путем ручного редактирования значения в ".idea / sbt.в формате XML" в правая версия JDK.


такая же ошибка также возникает при попытке выполнить обновление в "задачах SBT".

открыть

Preferences -> Language & Frameworks -> Scala Compiler Server

поворот на

Run compile server (in external build mode)

Как только вы закончите обновление проекта, снова выключите его, чтобы включить hotswapping при изменении кода в Редакторе.


мне пришлось открыть Settings -> Language & Frameworks -> Scala Compiler Server

затем установите JVM SDK там, который был <No SDK>.

Это было в дополнение к настройке SDK проекта в Project Structure -> Project.

посмотреть скриншот сюда.


IntelliJ 13.1.6 > файл > структура проекта > set Project SDK


У меня такая же проблема после удаления Java1.6 и Java1.7 из настроек проекта (с Java8 по умолчанию).

наконец, я решаю проблему, изменяя конфигурацию SBT JVM на пользовательскую Java (настройки -> сборка, выполнение, развертывание -> инструменты сборки -> SBT).


для меня вышеуказанные предложения почему-то не помогли. Тем не менее, я понял, что под Проект По Умолчанию > Структура Проекта (экран приветствия) мой SDK проекта по умолчанию был установлен в Go SDK.

Что сработало для меня, это установка этого SDK по умолчанию на Java JDK.


для меня я выбрал JDK в "Open Module Settings" > Module > Dependencies > Module SDK. Однако SBT искал JDK на уровне проекта, который установлен в" Open Module Settings " > Project > Project SDK, как @michasm указал выше


на последние Ночные новости плагина Scala изменить, как установлен проект JDK, который должен решить это в большинстве случаев. Дайте мне знать, если он все еще ломается по некоторым делам.