【问题标题】:java.lang.UnsupportedClassVersionError: org/jetbrains/kotlin/preloading/Preloader : Unsupported major.minor version 52.0 while compile kotlinjava.lang.UnsupportedClassVersionError:org/jetbrains/kotlin/preloading/Preloader:编译kotlin时不支持major.minor 52.0版
【发布时间】:2018-08-06 15:28:24
【问题描述】:

我是 Kotlin 的初学者。我在执行以下操作时遇到以下异常:

kotlinc sample.kt -include-runtime -d sample.jar

线程“主”java.lang.UnsupportedClassVersionError 中的异常: org/jetbrains/kotlin/preloading/Preloader:不支持的major.minor 版本 52.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

代码

fun main(args: Array<String>){
      var a : Int
      a = getLength("Hello")
      println("length of word is $a")
  }

  fun getLength(word : Any) : Int? {
      if (word !is String) return null
      return word.length
  }

而kotlin版本是Kotlin version 1.2.21-release-88 (JRE 1.7.0_79-b15)

【问题讨论】:

  • 你的 JDK 版本是多少?请添加java -version 命令的输出。
  • 知道了。现在我已经更新了jdk。 java -version java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode) 工作正常。谢谢@asm0dey
  • 添加了答案,希望对您有所帮助。

标签: kotlin


【解决方案1】:

用于构建sample.jar 的JDK 版本是使用比您用于编译kotlin 文件的Java 版本更新的Java 版本构建的。 你有两种方法:

  1. 使用当前版本的 JDK 重新构建示例 jar
  2. 更新计算机上的 JDK 并尝试再次编译

【讨论】:

  • 谢谢@asm0dey。我已经更新了我的 JDK。请让我知道如何使用您当前版本的 JDK 重建示例 jar。有什么意见吗?
  • 如果你可以使用代码——显然你可以重建它:)
【解决方案2】:

安装更新的 JDK,转到文件> 项目结构。选择并选择较新的 JDK 版本。 那你就准备好了,

干杯

【讨论】:

    猜你喜欢
    • 2017-08-14
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2016-12-28
    • 2018-08-24
    相关资源
    最近更新 更多