首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建立多平台项目

建立多平台项目
EN

Stack Overflow用户
提问于 2017-12-08 20:10:28
回答 1查看 665关注 0票数 0

考虑到Kotlin 1.2引入了kotlin-platform-common,我正在尝试构建我的第一个通用.class文件,因此我做了以下工作:

main.kt

代码语言:javascript
复制
package hello

fun main() {
    println("kotlin!")
} 

gradle.build

代码语言:javascript
复制
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:

代码语言:javascript
复制
kotlin -cp <filename>.jar hello.MainKt

备选案文2:

代码语言:javascript
复制
java -jar <filename>.jar

项目结构和错误如下图所示:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-14 05:40:20

使用Kotlin1.2,普通模块不生成二进制文件(如.class文件),只生成元数据文件。即使您不使用expect 关键字anywhere,也是如此。

因此,您必须创建另一个模块,其中包括如下内容:

代码语言:javascript
复制
apply plugin: 'kotlin-platform-jvm'

JVM模块还需要在dependencies中为您的公共模块提供一个dependencies条目。另外,您可能需要一个相应的JS模块。

最好让IntelliJ为您创建整个多平台项目,然后编辑适合的Gradle文件,但是这个页面列出了手动步骤:https://kotlinlang.org/docs/reference/multiplatform.html#setting-up-a-multiplatform-project

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47721483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档