如何使用Gradle在Kotlin上瞄准JVM9?
使用Gradle在Kotlin上定位JVM1.8与如何使用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兼容字节码之间进行选择。可以为更高版本的平
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”,它应该按原样工作。在当前日期,这个答案似乎是正确的;这将是一个很好的解释,让其他人也了解它的错误所在