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?

110
demandé sur Jacek Laskowski 2014-08-08 14:26:45

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.

enter image description here

L'ouverture du projet sbt devrait bien fonctionner alors.

solution trouvée d'ici

204
répondu Prabu 2014-11-03 11:03:04

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.

enter image description here

25
répondu michalczukm 2014-09-15 23:14:31

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.

20
répondu F30 2016-08-10 11:35:54

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.

7
répondu Onur Aktaş 2014-12-10 08:00:47

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 .

4
répondu Michael Prentice 2016-05-31 21:25:46

IntelliJ 13.1.6 > Fichier > Structure de Projet > Projet de SDK

1
répondu soheildb 2016-06-25 19:21:16

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).

1
répondu wu zhonglin 2016-07-21 02:15:05

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.

1
répondu edudojevic 2017-08-07 12:48:47

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

0
répondu Shiva 2014-10-31 06:11:55

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.

0
répondu Justin Kaeser 2016-08-23 13:47:08