Intellij拒绝将Kotlin目标jvm设置为1.8?

时间:2019-02-11 21:22:40

标签: java gradle intellij-idea kotlin

ParallelStreams.kts:41:15: error: calls to static methods in Java interfaces are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'
IntStream.range(0,10).parallel().forEach{a ->
         ^

好吧...我不是要为1.6编译。

File > Project Structure > Project具有项目sdk 1.8和语言级别8

File > Project Structure > Modules > Kotlin具有目标平台:JVM 1.8

File > Project Structure > Facets > Kotlin具有目标平台:JVM 1.8

File > Settings > Compiler > Kotlin Compiler具有目标jvm版本1.8

我的gradle构建文件...

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.0'
}

group 'foo'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    //kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.3.0"

    //networking
    implementation 'com.mashape.unirest:unirest-java:1.4.9'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

我没地方去检查1.8

是的,我 已经 尝试使缓存无效并重新启动Intellij。它无法解决此问题。

4 个答案:

答案 0 :(得分:0)

为Java 1.8添加sourceCompatibilitytargetCompatibility

plugins {
  id 'org.jetbrains.kotlin.jvm' version '1.3.0'
}

group 'foo'
version '1.0-SNAPSHOT'

repositories {
  mavenCentral()
}

// Add compatibility
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8


dependencies {
  //kotlin
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
  implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.3.0"

  //networking
  implementation 'com.mashape.unirest:unirest-java:1.4.9'
}

compileKotlin {
  kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
  kotlinOptions.jvmTarget = "1.8"
}

答案 1 :(得分:0)

由于为所有相关配置生成了编译任务,因此仅更改compileKotlincompileTestKotlin可能是不够的。

尝试使用任务过滤来配置所有KotlinCompile个任务实例:

tasks.withType(KotlinCompile) {
    kotlinOptions.jvmTarget = "1.8"
}

答案 2 :(得分:0)

我认为您的问题出在* .kts文件扩展名中。尝试创建一个普通的* .kt Kotlin类。

答案 3 :(得分:0)

使用.kts只需使用:

tasks {
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "1.8"
    }
}

// I am using latest dsl and gradle 
val kotlinVersion = "1.3.30"
val gradleVersion = "5.4+"