【发布时间】:2015-11-16 14:58:09
【问题描述】:
我正在尝试将 kotlin 与 gradle 一起使用,但我无法使用 Intellij Idea 15 成功创建项目。
我创建了包含两个模块 hello-java 和 hello-kotlin 的简单项目。
hello-java 是普通的 java 项目,它的编译和运行都非常好。
hello-kotlin 是一个简单的 kotin 模块,只有一个 *.kt 文件和 build.gradle 文件。
以下是来源:
build.gradle
group 'pl.fzymek.kotlin'
version '1.0-SNAPSHOT'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.10.4"
}
}
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = 'HelloKotlinKt'
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': mainClassName
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:0.10.4"
}
HelloKotlin.kt
fun main(args: Array<String>) {
println("Hello, Kotlin!")
}
主模块设置.gradle
include 'hello-java'
include 'hello-kotlin'
运行gradlew clean build时所有项目都编译成功,但运行java -jar hello-kotlin-1.0-SNAPSHOT.jar时出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at HelloKotlinKt.main(HelloKotlin.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
更重要的是,Intellij 似乎无法将 src/main/kotlin 目录识别为源目录(它未标记为蓝色),并且在编辑 HelloKotlin.kt 文件时我无法使用自动完成功能。
这是我在 Intellij 项目窗口中的项目结构
我尝试使用 Intellij 选项来配置带有 Kotlin 的模块(Tools->Kotlin->Configure project with Kotlin),但它给我的错误是“所有带有 kotlin 文件的模块都已配置”
帮助我stackoverflow,你是我唯一的帮助。
【问题讨论】:
-
你为什么使用 Kotlin 0.10?最新版本是 1.0-beta。
-
没有特别的原因。我试过不同的版本。我认为我的问题与 kotlin 版本有关。
-
嗯,您显示的堆栈跟踪包含一个在最新 Kotlin 版本中不再存在的类,所以是的,它与 Kotlin 版本有关。请务必使用最新的。
标签: java intellij-idea kotlin