Ich verwende IntelliJ IDEA 13.1.4 und habe auch die neueste Version 14 ausprobiert.
Beim Ausführen von SBT wird der folgende Fehler angezeigt:
Error:Cannot determine Java VM executable in selected JDK
Ich habe JDK 1.7 auf meinem Computer und auf PATH installiert.
In den Protokollen ( ~/Library/Logs/IntelliJIdea14/idea.log
unter MacOS) befindet sich die folgende Stapelverfolgung:
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$10.apply(SbtExternalSystemManager.scala:97)
at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun$10.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$1.apply(SbtExternalSystemManager.scala:54)
at org.jetbrains.sbt.project.SbtExternalSystemManager$$anonfun$getExecutionSettingsProvider$1.apply(SbtExternalSystemManager.scala:54)
at org.jetbrains.sbt.package$$anon$3.fun(package.scala:29)
at org.jetbrains.sbt.package$$anon$3.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$2.execute(ExternalSystemUtil.java:475)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3$1.run(ExternalSystemUtil.java:543)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:609)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$7.run(ProgressManagerImpl.java:410)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$3.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$10$1.run(ApplicationImpl.java:640)
at com.intellij.openapi.application.impl.ApplicationImpl$8.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$1$1.run(PooledThreadExecutor.java:56)
Was kann der Grund dafür sein?
intellij-idea
sbt
Zuriar
quelle
quelle
Project SDK
für das definierte Projekt haben. Könnten Sie die Projekteinstellungen für das betreffende Projekt überprüfen und die Einstellungen unter Projekt anzeigen?Antworten:
Sie sollten in der Lage sein, dies zu umgehen, indem Sie das JDK in den Einstellungen und nicht im Dialogfeld "Projekt öffnen / importieren" festlegen.
Gehen Sie im Begrüßungsbildschirm zu
Configure -> Project defaults -> Project structure
und fügen Sie das JDK hinzu.Das Öffnen des sbt-Projekts sollte dann gut funktionieren.
Hier gefundene Lösung
quelle
Eine andere Möglichkeit, JDK festzulegen, besteht in Ihren aktuellen Modul- / Projekteinstellungen (für Ihr aktuelles Projekt).
Wählen Sie
Open Module Settings
aus dem Projektkontextmenü (oder drücken Sie standardmäßig F4),wählen Sie dann auf der linken Registerkarte aus
Project
und zeigen SieProject SDK
in der Dropdown-Liste richtig .quelle
Das Problem wird normalerweise durch eine falsche JDK-Version in ".idea / sbt.xml" verursacht, z.
Diese Option wird nicht entsprechend aktualisiert, wenn das Project SDK geändert wird (siehe SCL-10085) . Wenn Sie das andere JDK (in meinem Beispiel 1.7) allgemein konfiguriert haben, tritt kein Fehler auf, aber das Projekt-SDK wird stillschweigend zurückgesetzt. Andernfalls tritt dieser Fehler auf.
Das Problem kann leicht behoben werden, indem der Wert in ".idea / sbt.xml" manuell auf die richtige JDK-Version bearbeitet wird.
quelle
Der gleiche Fehler tritt auch auf, wenn Sie versuchen, eine Aktualisierung in "SBT-Aufgaben" durchzuführen.
Öffnen
Anschalten
Wenn Sie mit dem Aktualisieren des Projekts fertig sind, deaktivieren Sie es erneut, um das Zurückschalten zu aktivieren, wenn Sie Ihren Code im Editor ändern.
quelle
Ich musste öffnen
Settings -> Language & Frameworks -> Scala Compiler Server
Stellen Sie dann dort das JVM SDK ein
<No SDK>
.Dies war zusätzlich zum Einrichten des Project SDK
Project Structure -> Project
.Sehen Sie den Screenshot hier .
quelle
IntelliJ 13.1.6> Datei> Projektstruktur> Projekt-SDK festlegen
quelle
Ich habe das gleiche Problem, nachdem ich Java1.6 und Java1.7 aus den Projekteinstellungen gelöscht habe (standardmäßig Java8).
Schließlich löse ich das Problem, indem ich die SBT JVM-Konfiguration in Benutzerdefiniertes Java ändere (Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Erstellen von Tools -> SBT).
quelle
Für mich haben die obigen Vorschläge aus irgendeinem Grund nicht geholfen. Ich habe jedoch herausgefunden, dass unter Projektstandards> Projektstruktur (Begrüßungsbildschirm) mein Standard-Projekt-SDK auf das Go-SDK festgelegt wurde.
Für mich hat es funktioniert, dieses Standard-SDK auf das Java-JDK zu setzen.
quelle
Für mich hatte ich das JDK unter "Moduleinstellungen öffnen"> Modul> Abhängigkeiten> Modul-SDK ausgewählt. SBT suchte jedoch nach JDK auf Projektebene, das unter "Open Module Settings"> Project> Project SDK festgelegt ist, wie @michasm oben ausgeführt hat
quelle
Die neuesten Nightlies des Scala-Plugins ändern die Einstellung des Projekt-JDK, was dies in den meisten Fällen lösen sollte. Lassen Sie mich wissen, ob es in einigen Fällen immer noch kaputt geht.
quelle
Dies passierte mir in einem mehrsprachigen Projekt, als das Project SDK meines primären Moduls Python war und ich versuchte, ein sekundäres Modul hinzuzufügen, das JDK war (Importieren eines sbt-Projekts).
Ich musste das Project SDK des primären Moduls vorübergehend auf JDK umstellen, um das sbt-Modul hinzuzufügen. Ich hatte dann die Möglichkeit, jedes Modul auf das richtige SDK umzustellen.
quelle