Saya menggunakan IntelliJ IDEA 13.1.4 dan juga mencoba rilis terbaru 14.
Menjalankan SBT Saya mendapatkan kesalahan berikut:
Error:Cannot determine Java VM executable in selected JDK
Saya telah menginstal JDK 1.7 di mesin saya dan di PATH.
Di log ( ~/Library/Logs/IntelliJIdea14/idea.log
di MacOS) ada pelacakan tumpukan berikut:
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)
Apa alasannya?
intellij-idea
sbt
Zuriar
sumber
sumber
Project SDK
untuk proyek yang ditentukan. Bisakah Anda memeriksa Pengaturan Proyek untuk proyek yang dimaksud dan melihat pengaturan di bawah Proyek?Jawaban:
Anda harus dapat mengatasinya dengan menyetel jdk dari pengaturan bukan dari dialog proyek buka / impor.
Dari layar pembuka, buka
Configure -> Project defaults -> Project structure
dan tambahkan jdk.Membuka proyek sbt seharusnya bekerja dengan baik.
Menemukan solusi dari sini
sumber
Cara lain untuk mengatur JDK adalah dari modul / pengaturan proyek Anda saat ini (untuk proyek Anda saat ini)
Pilih
Open Module Settings
dari menu konteks proyek (atau klik default F4),lalu dari tab kiri pilih
Project
dan arahkan ke kananProject SDK
pada dropdown.sumber
Masalah ini biasanya disebabkan oleh versi JDK yang salah di ".idea / sbt.xml", misalnya:
Opsi ini tidak diperbarui sebagaimana mestinya saat Project SDK diubah, lihat SCL-10085 . Jika Anda memiliki JDK lain (1.7 dalam contoh saya) yang umumnya dikonfigurasi, tidak akan terjadi kesalahan, tetapi Project SDK akan diam-diam diubah kembali. Jika tidak, kesalahan ini terjadi.
Masalahnya dapat dengan mudah diselesaikan dengan mengedit nilai dalam ".idea / sbt.xml" secara manual ke versi JDK yang benar.
sumber
Kesalahan yang sama juga terjadi saat Anda mencoba melakukan penyegaran di "tugas SBT".
Buka
Nyalakan
Setelah Anda selesai menyegarkan proyek, matikan lagi untuk mengaktifkan hotswapping kembali ketika Anda mengubah kode Anda di editor.
sumber
Saya harus membuka
Settings -> Language & Frameworks -> Scala Compiler Server
Kemudian atur JVM SDK di sana, yaitu
<No SDK>
.Ini sebagai tambahan untuk mengatur Project SDK di
Project Structure -> Project
.Lihat tangkapan layarnya di sini .
sumber
IntelliJ 13.1.6> File> Struktur Proyek> setel SDK Proyek
sumber
Saya mendapat masalah yang sama setelah saya menghapus Java1.6 dan Java1.7 dari Pengaturan Proyek (dengan Java8 sebagai default).
Akhirnya saya menyelesaikan masalah dengan mengubah konfigurasi SBT JVM ke Java Kustom (Pengaturan -> Build, Execution, Deployment -> Build Tools -> SBT).
sumber
Bagi saya saran di atas tidak membantu karena suatu alasan. Namun, saya menemukan itu di bawah Project Defaults> Project Structure (Layar Selamat Datang) Project SDK default saya disetel ke Go SDK.
Apa yang berhasil bagi saya adalah menyetel SDK default ini ke Java JDK.
sumber
Bagi saya, saya telah memilih JDK di "Open Module Settings"> Module> Dependencies> Module SDK. Namun, SBT mencari JDK di level project yang disetel di "Open Module Settings"> Project> Project SDK seperti yang ditunjukkan @michasm di atas
sumber
The nightlies terbaru dari Scala Plugin perubahan bagaimana proyek JDK diatur, yang harus memecahkan masalah ini dalam banyak kasus. Beri tahu saya jika masih rusak pada beberapa kasus.
sumber
Ini terjadi pada saya dalam proyek multi-bahasa ketika Project SDK modul utama saya adalah Python dan saya mencoba menambahkan modul sekunder yaitu JDK (mengimpor proyek sbt).
Saya harus mengganti sementara Project SDK modul utama ke JDK untuk menambahkan modul sbt. Saya kemudian memiliki kemampuan untuk kembali dan mengubah setiap modul ke SDK yang benar.
sumber