考虑到Kotlin 1.2引入了kotlin-platform-common,我正在尝试构建我的第一个通用.class文件,因此我做了以下工作:
main.kt
package hello
fun main() {
println("kotlin!")
} gradle.build
group 'h'
version 'prn'
buildscript {
ext.kotlin_version = '1.2.0'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin-platform-common'
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
}
sourceSets {
main.kotlin.srcDirs += 'src/kotlin'
main.resources.srcDirs += 'src/resources'
}
jar {
manifest {
attributes 'Main-Class': 'hello.MainKt'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}然后我运行gradle build
我找不到生成的任何.class文件吗?如何生成它,我应该在哪里找到它?
Q2-我生成了一个.jar文件,但是一旦我尝试运行它,我就得到了一个错误:
错误:找不到或加载主类hello.MainKt
我尝试使用下面的2选项运行它,但是对于bot,我得到了相同的错误:
备选案文1:
kotlin -cp <filename>.jar hello.MainKt备选案文2:
java -jar <filename>.jar项目结构和错误如下图所示:

发布于 2017-12-14 05:40:20
使用Kotlin1.2,普通模块不生成二进制文件(如.class文件),只生成元数据文件。即使您不使用expect 关键字anywhere,也是如此。
因此,您必须创建另一个模块,其中包括如下内容:
apply plugin: 'kotlin-platform-jvm'JVM模块还需要在dependencies中为您的公共模块提供一个dependencies条目。另外,您可能需要一个相应的JS模块。
最好让IntelliJ为您创建整个多平台项目,然后编辑适合的Gradle文件,但是这个页面列出了手动步骤:https://kotlinlang.org/docs/reference/multiplatform.html#setting-up-a-multiplatform-project
https://stackoverflow.com/questions/47721483
复制相似问题