¿Cuál es el motivo del "Error: no se puede determinar el ejecutable de Java VM en el JDK seleccionado"?


110

Estoy usando IntelliJ IDEA 13.1.4 y también probé la última versión 14.

Al ejecutar SBT, aparece el siguiente error:

Error:Cannot determine Java VM executable in selected JDK

Tengo JDK 1.7 instalado en mi máquina y en PATH.

En los registros ( ~/Library/Logs/IntelliJIdea14/idea.logen MacOS) hay el siguiente seguimiento de pila:

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)

¿Cuál puede ser la razón de esto?


Es probable que tenga JRE Project SDKpara el proyecto definido. ¿Podría comprobar la configuración del proyecto para el proyecto en cuestión y ver la configuración en Proyecto?
Jacek Laskowski

Descubrí que necesitaba invalidar cachés como se describe en esta respuesta .
Rob Mayoff

Respuestas:


204

Debería poder solucionarlo configurando el jdk desde la configuración, no desde el cuadro de diálogo abrir / importar proyecto.

Desde la pantalla de bienvenida, vaya a Configure -> Project defaults -> Project structurey agregue el archivo jdk.

ingrese la descripción de la imagen aquí

Abrir el proyecto sbt debería funcionar bien entonces.

Solución encontrada desde aquí


25

Otra forma de configurar JDK es desde la configuración actual del módulo / proyecto (para su proyecto actual)

Elija Open Module Settingsdel menú contextual del proyecto (o presione F4 por defecto),
luego , desde la pestaña izquierda, seleccione Projecty apunte correctamente Project SDKen el menú desplegable.

ingrese la descripción de la imagen aquí


20

El problema suele deberse a una versión incorrecta de JDK en ".idea / sbt.xml", por ejemplo:

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

Esta opción no se actualiza en consecuencia cuando se cambia el SDK del proyecto, consulte SCL-10085 . Si tiene el otro JDK (1.7 en mi ejemplo) configurado generalmente, no se producirá ningún error, pero el SDK del proyecto se volverá a cambiar silenciosamente. De lo contrario, se produce este error.

El problema se puede resolver fácilmente editando manualmente el valor en ".idea / sbt.xml" a la versión correcta de JDK.


7

El mismo error también ocurre cuando intenta actualizar en "Tareas SBT".

Abierto

Preferences -> Language & Frameworks -> Scala Compiler Server

Encender

Run compile server (in external build mode)

Una vez que haya terminado de actualizar el proyecto, apáguelo nuevamente para habilitar el hotswapping cuando cambie su código en el editor.


4

Tuve que abrir Settings -> Language & Frameworks -> Scala Compiler Server

Luego, configure el SDK de JVM allí, que era <No SDK>.

Esto fue además de configurar el SDK del proyecto en Project Structure -> Project.

Vea la captura de pantalla aquí .


1

IntelliJ 13.1.6> Archivo> Estructura del proyecto> establecer SDK del proyecto


1

Tuve el mismo problema después de eliminar Java1.6 y Java1.7 de la configuración del proyecto (con Java8 por defecto).

Finalmente, resuelvo el problema cambiando la configuración de SBT JVM a Java personalizado (Configuración -> Compilación, ejecución, implementación -> Herramientas de compilación -> SBT).


1

Para mí, las sugerencias anteriores no ayudaron por alguna razón. Sin embargo, descubrí que en Valores predeterminados del proyecto> Estructura del proyecto (pantalla de bienvenida), mi SDK del proyecto predeterminado estaba configurado en el SDK de Go.

Lo que funcionó para mí fue configurar este SDK predeterminado para Java JDK.


0

Para mí, había seleccionado el JDK en "Configuración del módulo abierto"> Módulo> Dependencias> SDK del módulo. Sin embargo, SBT estaba buscando JDK a nivel de proyecto, que se establece en "Configuración del módulo abierto"> Proyecto> SDK del proyecto, como @michasm ha señalado anteriormente.



0

Esto me sucedió en un proyecto en varios idiomas cuando el SDK del proyecto de mi módulo principal era Python y estaba tratando de agregar un módulo secundario que era JDK (importando un proyecto sbt).

Tuve que cambiar temporalmente el Project SDK del módulo principal a JDK para agregar el módulo sbt. Luego tuve la capacidad de volver atrás y cambiar cada módulo al SDK correcto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.