是否可以使用jdk 7运行kotlin等级插件

时间:2017-12-06 11:38:28

标签: intellij-idea gradle kotlin

出于兼容性原因,我的项目使用jdk 7。

build.gradle的底部

buildscript {
    ext.kotlin_version = '1.2.0'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

当我使用jdk 7进行gradle时,我得到了这个:

java.lang.UnsupportedClassVersionError: org/jetbrains/kotlin/gradle/KotlinGradleModel : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.gradle.tooling.internal.provider.serialization.DefaultPayloadClassLoaderRegistry$2.resolveClass(DefaultPayloadClassLoaderRegistry.java:91)
    at org.gradle.tooling.internal.provider.serialization.WellKnownClassLoaderRegistry$2.resolveClass(WellKnownClassLoaderRegistry.java:91)
    at org.gradle.tooling.internal.provider.serialization.PayloadSerializerObjectInputStream.readClass(PayloadSerializerObjectInputStream.java:66)
  ... cut

如果我在项目jdk仍为jdk7时切换到jdk 8运行等级,则构建成功。这是预期的行为吗?

1 个答案:

答案 0 :(得分:2)

经过数小时的研究,我终于找到了这篇文章:

https://blog.jetbrains.com/kotlin/2017/04/kotlin-1-1-2-is-out/

  

Kotlin编译器现在需要运行JDK 8。你不应该注意到   任何变化,因为大多数其他Java开发工具,如Gradle   Android工具链也需要JDK 8,所以你几乎可以肯定   已经安装好了。对于编译器生成的代码,Java   1.6兼容性仍然是默认设置,我们没有计划放弃对生成Java 1.6兼容字节码的支持。

所以,答案是否定的。