Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Gradle在Kotlin上瞄准JVM9?_Gradle_Kotlin - Fatal编程技术网

如何使用Gradle在Kotlin上瞄准JVM9?

如何使用Gradle在Kotlin上瞄准JVM9?,gradle,kotlin,Gradle,Kotlin,使用Gradle在Kotlin上定位JVM1.8与 compileKotlin { kotlinOptions { jvmTarget = "1.8" } } 但是,如果我简单地将jvmTarget更改为9或1.9,这对Java9不起作用。我该怎么做呢?Kotlin目前只针对Java6和Java8 请参见此处的常见问题解答 现在说 Kotlin是否只针对Java6? 不需要。Kotlin允许您在生成Java6和Java8兼容字节码之间进行选择。可以为更高版本的平

使用Gradle在Kotlin上定位JVM1.8与

compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

但是,如果我简单地将
jvmTarget
更改为
9
1.9
,这对Java9不起作用。我该怎么做呢?

Kotlin目前只针对Java6和Java8

请参见此处的常见问题解答

现在说

Kotlin是否只针对Java6? 不需要。Kotlin允许您在生成Java6和Java8兼容字节码之间进行选择。可以为更高版本的平台生成更优化的字节码


编辑:

所以。。。因为kotlin生成的字节码的兼容性并不意味着修复了您需要使用的Java版本

这里有一个gradle文件,让我们一起使用Java11和kotlin生成与Java8兼容的字节码

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.2.71'
}

group 'com.dambra.paul.string-calculator'
version '0.0.0'

sourceCompatibility = 11.0

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(
            'org.junit.jupiter:junit-jupiter-api:5.1.0'
    )
    testRuntimeOnly(
            'org.junit.jupiter:junit-jupiter-engine:5.1.0'
    )
    testCompile("org.assertj:assertj-core:3.11.1")
    testCompile 'org.junit.jupiter:junit-jupiter-params:5.1.0'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
你不能用Kotlin“瞄准JVM9”。但是您可以将Kotlin与Java一起编写(9 | 10 | 11 |等)

有关属性的可能值,请参见:

名称:
jvmTarget

描述:生成的JVM字节码的目标版本(1.6、1.8、9、10、11或12),默认值为1.6

可能值:“1.6”、“1.8”、“9”、“10”、“11”、“12”

默认值:“1.6”

复制于2019/10/01


你用的是哪个版本的Gradle?我用的是Gradle v4.2.1,我认为根本没有特殊的“1.9”模式。离开jvmTarget=“1.8”,它应该按原样工作。在当前日期,这个答案似乎是正确的;这将是一个很好的解释,让其他人也了解它的错误所在