我在Kotlin尝试了一个简单的Hello World程序。
fun main(args: Array<String>) {
println("HelloWorld!")
}
但是当我尝试在终端中编译它时,
kotlinc HelloWorld.kt -include-runtime -d HelloWorld.jar
我得到以下内容。
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/jetbrains/kotlin/preloading/Preloader : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
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 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
答案 0 :(得分:0)
Kotlin编译器需要Java 8来运行编译过程。您仍然可以根据需要定位Java 6字节码或Java 8字节码,但在编译期间必须使用Java 8或更新的JDK。这是在Kotlin 1.1.2 release announcement宣布的。
在&#34;迁移说明&#34;:
Kotlin编译器现在需要运行JDK 8。您不应该注意到任何更改,因为大多数其他Java开发工具(如Gradle和Android工具链)也需要JDK 8,因此您几乎肯定已经安装了它。对于编译器生成的代码,Java 1.6兼容性仍然是默认设置,我们没有计划放弃对生成Java 1.6兼容字节码的支持。