如何限制kotlin使用jdk1.6上面公布的java api

我的编译环境是jdk1.8,运行时环境是jdk1.6。 gradle的java插件有sourceCompatibility属性。 这是有效的Java项目。
例如:当sourceCompatibility=1.6 ,如果我使用api(比如来自jdk1.7的Paths ,编译器会报错。

sourceCompatibility属性不适用于kotlin项目。 我明白这是出于java插件的范围。 但是我很奇怪, kotlin插件是否有类似的属性。 ( jvmTarget属性默认是1.6,不会阻止我使用jdk1.7 api)

===我的代码===

科特林代码:

 fun main(args: Array<String>) { val pp = Paths.get("/tmp") ... ... } 

我想让kotlin的编译器报告错误,但是编译成功了,

build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0" } } subprojects { apply plugin: "java" compileJava.sourceCompatibility=1.6 compileJava.targetCompatibility=1.6 compileJava.options.encoding = 'UTF-8' // For ubuntu compileJava.options.bootClasspath = '/usr/lib/jvm/java-6-oracle/jre/lib/rt.jar' } 

孩子kotlin项目build.gradle

 apply plugin: 'application' apply plugin: 'kotlin' mainClassName = 'net.cat.ApplictionKt' version='1.0' jar { manifest { attributes 'Implementation-Title': 'xxxx', 'Implementation-Version': version, 'Main-Class': mainClassName } } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.0" compile "org.jetbrains.kotlin:kotlin-reflect:1.1.0" ... ... } 

您可以设置Kotlin编译器的jdkHome属性:

 compileKotlin { kotlinOptions { jdkHome = '[path to 1.6 JDK]' } }