IntelliJ IDEA 13.1.4를 사용하고 있으며 최신 릴리스 14도 사용해 보았습니다.
SBT를 실행하면 다음 오류가 발생합니다.
Error:Cannot determine Java VM executable in selected JDK
내 컴퓨터와 PATH에 JDK 1.7이 설치되어 있습니다.
로그 ( ~/Library/Logs/IntelliJIdea14/idea.log
MacOS의 경우)에는 다음과 같은 스택 추적이 있습니다.
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)
그 이유는 무엇일까요?
답변
프로젝트 열기 / 가져 오기 대화 상자가 아닌 설정에서 jdk를 설정하여 문제를 해결할 수 있어야합니다.
시작 화면 Configure -> Project defaults -> Project structure
에서 jdk 로 이동하여 추가하십시오.
sbt 프로젝트를 열면 잘 작동합니다.
답변
JDK를 설정하는 또 다른 방법은 현재 모듈 / 프로젝트 설정 (현재 프로젝트의 경우)입니다.
선택 Open Module Settings
(또는 기본 F4 히트) 프로젝트의 컨텍스트 메뉴에서
다음 왼쪽 탭을 선택 Project
하고 포인트 올바른 Project SDK
드롭 다운에.
답변
이 문제는 일반적으로 “.idea / sbt.xml”의 잘못된 JDK 버전으로 인해 발생합니다. 예 :
<option name="jdk" value="1.7" />
이 옵션은 프로젝트 SDK가 변경 될 때 그에 따라 업데이트되지 않습니다 . SCL-10085를 참조하십시오 . 다른 JDK (예 : 1.7)가 일반적으로 구성되어있는 경우 오류가 발생하지 않지만 프로젝트 SDK는 자동으로 다시 변경됩니다. 그렇지 않으면이 오류가 발생합니다.
“.idea / sbt.xml”의 값을 올바른 JDK 버전으로 수동 편집하여 문제를 쉽게 해결할 수 있습니다.
답변
“SBT 작업”에서 새로 고침을 시도 할 때도 동일한 오류가 발생합니다.
열다
Preferences -> Language & Frameworks -> Scala Compiler Server
켜다
Run compile server (in external build mode)
프로젝트 새로 고침을 완료 한 후 편집기에서 코드를 변경할 때 다시 핫스왑을 활성화하려면 다시 끄십시오.
답변
나는 열어야했다 Settings -> Language & Frameworks -> Scala Compiler Server
그런 다음 JVM SDK를 설정하십시오 <No SDK>
.
이는 .NET에서 프로젝트 SDK를 설정하는 것 외에 추가되었습니다 Project Structure -> Project
.
답변
IntelliJ 13.1.6> 파일> 프로젝트 구조> 프로젝트 SDK 설정
답변
프로젝트 설정에서 Java1.6 및 Java1.7을 삭제 한 후에도 동일한 문제가 발생했습니다 (기본적으로 Java8 사용).
마지막으로 SBT JVM 구성을 Custom Java (Settings-> Build, Execution, Deployment-> Build Tools-> SBT)로 변경하여 문제를 해결했습니다.