Estou usando o IntelliJ IDEA 13.1.4 e também experimentei a versão 14 mais recente.
Ao executar o SBT, recebo o seguinte erro:
Error:Cannot determine Java VM executable in selected JDK
Tenho o JDK 1.7 instalado em minha máquina e no PATH.
Nos logs ( ~/Library/Logs/IntelliJIdea14/idea.log
no MacOS) há o seguinte rastreamento de pilha:
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)
Qual pode ser a razão disso?
intellij-idea
sbt
Zuriar
fonte
fonte
Project SDK
para o projeto definido. Você poderia verificar as configurações do projeto para o projeto em questão e ver as configurações em Projeto?Respostas:
Você deve ser capaz de contornar isso configurando o jdk nas configurações, não na caixa de diálogo abrir / importar projeto.
Na tela de boas-vindas, acesse
Configure -> Project defaults -> Project structure
e adicione o jdk.Abrir o projeto sbt deve funcionar bem então.
Solução encontrada aqui
fonte
Outra forma de definir o JDK é a partir das configurações atuais do módulo / projeto (para o seu projeto atual)
Escolha
Open Module Settings
no menu de contexto do projeto (ou pressione F4 padrão) e, aseguir , na guia esquerda, selecione
Project
e aponte para corrigirProject SDK
no menu suspenso.fonte
O problema geralmente é causado por uma versão errada do JDK em ".idea / sbt.xml", por exemplo:
Esta opção não é atualizada adequadamente quando o SDK do projeto é alterado, consulte SCL-10085 . Se você tiver o outro JDK (1.7 no meu exemplo) geralmente configurado, nenhum erro ocorrerá, mas o SDK do projeto será alterado de volta silenciosamente. Caso contrário, esse erro ocorre.
O problema pode ser facilmente resolvido editando manualmente o valor em ".idea / sbt.xml" para a versão correta do JDK.
fonte
O mesmo erro também ocorre quando você tenta fazer uma atualização em "tarefas SBT".
Abrir
Ligar
Assim que terminar de atualizar o projeto, desligue-o novamente para habilitar o hotswapping de volta ao alterar seu código no editor.
fonte
Eu tive que abrir
Settings -> Language & Frameworks -> Scala Compiler Server
Em seguida, defina o JVM SDK lá, que era
<No SDK>
.Isso além de configurar o SDK do projeto em
Project Structure -> Project
.Veja a imagem aqui .
fonte
IntelliJ 13.1.6> Arquivo> Estrutura do projeto> definir SDK do projeto
fonte
Tive o mesmo problema depois de excluir Java1.6 e Java1.7 das configurações do projeto (com Java8 como padrão).
Finalmente, resolvo o problema alterando a configuração do SBT JVM para Java personalizado (Configurações -> Compilar, Execução, Implementação -> Ferramentas de Compilação -> SBT).
fonte
Para mim, as sugestões acima não ajudaram por algum motivo. No entanto, descobri que, em Padrões do projeto> Estrutura do projeto (tela de boas-vindas), meu SDK do projeto padrão foi definido para o SDK do Go.
O que funcionou para mim foi definir este SDK padrão para o Java JDK.
fonte
Para mim, selecionei o JDK em "Abrir configurações do módulo"> Módulo> Dependências> SDK do módulo. No entanto, o SBT estava procurando por JDK no nível do projeto, que é definido em "Abrir Configurações do Módulo"> Projeto> SDK do Projeto, como @michasm apontou acima
fonte
O último plugin Nightlies of the Scala muda a configuração do JDK do projeto, o que deve resolver isso na maioria dos casos. Avise-me se ainda quebrar em alguns casos.
fonte
Isso aconteceu comigo em um projeto multilíngue quando o SDK do projeto do meu módulo principal era Python e eu estava tentando adicionar um módulo secundário que era JDK (importando um projeto sbt).
Tive que mudar temporariamente o SDK do projeto do módulo primário para JDK para adicionar o módulo sbt. Em seguida, tive a capacidade de voltar e alterar cada módulo para o SDK correto.
fonte