Kotlinc包括其他jar文件

Kotlinc包括其他jar文件,kotlin,jar,kotlinc,Kotlin,Jar,Kotlinc,我想在MacOS上从命令行运行应用程序。问题是我想在文件中包含Gson,以便将数据类转换为json对象。(我不熟悉kotlin的命令行) 为了简化,我使用以下方法: fun main() { val item = Building(1, "Name", 4, 2) val jsonBuilding: String = Gson().toJson(item) } 要在命令行中创建/运行我的代码,请使用: >> kotlinc creator.kt

我想在MacOS上从命令行运行应用程序。问题是我想在文件中包含
Gson
,以便将数据类转换为json对象。(我不熟悉kotlin的命令行)

为了简化,我使用以下方法:

fun main() {
    val item = Building(1, "Name", 4, 2)

    val jsonBuilding: String = Gson().toJson(item)
}
要在命令行中创建/运行我的代码,请使用:

>> kotlinc creator.kt -include-runtime -d creator.jar

>> java -jar creator.jar
现在我的问题是如何将
gson.jar
包含到应用程序中

目前,我收到错误,因为它无法解析
Gson()


非常感谢您的帮助。

您可能会使用Intellj IDEA。当您制作一个JVM Gradle命令行应用程序时,您应该在build.Gradle.kts文件中添加以下代码

tasks.withType<Jar> {
manifest {
    attributes["Main-Class"] = "com.your_project_package.MainKt"
}
// To add all of the dependencies
from(sourceSets.main.get().output)

dependsOn(configurations.runtimeClasspath)
from({
    configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
})
}

我希望这对你有帮助

tasks.withType<Jar> {
manifest {
    attributes["Main-Class"] = "com.your_project_package.MainKt"
}
// To add all of the dependencies
from(sourceSets.main.get().output)

dependsOn(configurations.runtimeClasspath)
from({
    configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
})
}
java -jar your_project_package.jar