2017-12-06 2 views
-1

laufen zu lassen Mein Projekt verwendet jdk 7 aus Kompatibilitätsgründen.Ist es möglich, kotlin grade plugin mit jdk 7

unteren Teil des build.gradle

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

Als ich jdk 7 für gradle verwenden, bekomme ich diese:

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 

Wenn ich wechseln für die Ausführung von Klasse 8 bis jdk während Projekt jdk noch JDK7 ist, Der Build ist erfolgreich. Ist das erwartetes Verhalten?

+0

Wenn das Plugin für Java8 kompiliert wurde, wird dies erwartet. (Ich bin neugierig - welcher Aspekt Ihres Build-Systems benötigt * Java7?) –

+0

@OliverCharlesworth alte Codebasis – ThomasEdwin

+0

Aber ein Java8 JDK sollte mit einer Java7-Codebasis kompatibel sein. –

Antwort

2

Nach Stunden der Forschung, fand ich endlich diesen Beitrag:

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

Der Kotlin Compiler 8 erfordert nun JDK zu laufen. Sie sollten nicht bemerken, irgendwelche Änderungen, weil die meisten anderen Java-Entwicklungstools wie Gradle und die Android-Toolchain JDK 8 erfordern, so dass Sie fast sicher bereits installiert haben. Für Code, der vom Compiler generiert wird, ist Java 1.6 Kompatibilität immer noch der Standard, und wir haben keine Pläne, die Unterstützung für das Generieren von Java 1.6 kompatiblem Bytecode fallen zu lassen.

Also, die Antwort ist nein.

Verwandte Themen