Quelle est la raison de "Error:Cannot determine Java VM executable in selected JDK"?
j'utilise IntelliJ IDEA 13.1.4 et j'ai également essayé la dernière version 14.
lancer SBT j'obtiens l'erreur suivante:
Error:Cannot determine Java VM executable in selected JDK
j'ai JDK 1.7 installé sur ma machine et sur PATH.
dans les journaux ( ~/Library/Logs/IntelliJIdea14/idea.log
sur MacOS) il y a la trace de pile suivante:
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)
quelle peut être la raison de cela?
10 réponses
vous devriez être en mesure de le contourner en paramétrant le jdk à partir des paramètres qui ne proviennent pas de la boîte de dialogue Ouvrir/importer un projet.
de l'écran de bienvenue, passez à Configure -> Project defaults -> Project structure
et ajoutez le jdk.
L'ouverture du projet sbt devrait bien fonctionner alors.
une autre façon de définir JDK est à partir de vos paramètres de module/projet actuels (pour votre projet actuel)
Ramasser Open Module Settings
de projets menu contextuel (ou à défaut de frapper F4),
ensuite, sélectionnez l'onglet Project
, et au point correcte Project SDK
sur la liste déroulante.
Le problème est généralement causé par une mauvaise version du JDK ".idée/sbt.xml", par exemple:
<option name="jdk" value="1.7" />
cette option n'est pas mise à jour en conséquence lorsque le projet SDK est modifié, voir SCL-10085 . Si vous avez l'autre JDK (1.7 dans mon exemple) généralement configuré, aucune erreur ne se produira, mais le SDK de projet sera silencieusement changé en arrière. Sinon, cette erreur se produit.
le problème peut facilement être résolu en éditant manuellement la valeur de ".idée/sbt.xml", à droite la version de JDK.
la même erreur se produit également lorsque vous essayez de faire une mise à jour dans"Tâches SBT".
ouvert
Preferences -> Language & Frameworks -> Scala Compiler Server
Activer
Run compile server (in external build mode)
une fois que vous avez terminé de rafraîchir le projet, éteignez-le à nouveau pour activer les réponses à chaud lorsque vous changez votre code dans l'éditeur.
j'ai dû ouvrir Settings -> Language & Frameworks -> Scala Compiler Server
a ensuite placé le SDK JVM là, qui était <No SDK>
.
en plus de définir le projet SDK dans Project Structure -> Project
.
voir la screenshot ici .
IntelliJ 13.1.6 > Fichier > Structure de Projet > Projet de SDK
j'ai eu le même problème après avoir supprimé Java1.6 et Java1.7 à partir des paramètres du projet(avec Java8 par défaut).
enfin je résous le problème en modifiant la config JVM SBT en Java personnalisé(paramètres -> construction, exécution, déploiement -> outils de construction -> SBT).
pour moi, les suggestions ci-dessus n'ont pas aidé pour une raison quelconque. Cependant, j'ai découvert que sous Project Defaults > Project Structure (Welcome screen) mon SDK de projet par défaut a été positionné sur le GO SDK.
ce qui a fonctionné pour moi était de définir ce SDK par défaut au Java JDK.
Pour moi, j'avais sélectionné le JDK "Ouvrir les Paramètres du Module" > Module > Dépendances > Module SDK. Cependant, SBT recherchait JDK au niveau du projet qui est défini dans "Open Module Settings" > Project > Project SDK comme @michasm l'a souligné ci-dessus
le dernières Nightlies du plugin Scala changer la façon dont le projet JDK est mis, ce qui devrait résoudre ce problème dans la plupart des cas. Laissez-moi savoir si il se casse encore sur certains cas.