Kotlinc 包含其他 jar 文件

Kotlinc include other jar files

我想 运行 从命令行在 MacOS 上开发一个应用程序。问题是我想在文件中包含 Gson 以将我的数据 类 转换为 json 对象。 (我是 kotlin 命令行的新手)

为了简化,我使用以下内容:

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

    val jsonBuilding: String = Gson().toJson(item)
}

为了create/run我在命令行中的代码我使用:

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

>> java -jar creator.jar

现在我的问题是如何将 gson.jar 添加到应用程序中才能使用它?

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

creator.kt:37:16: error: unresolved reference: Gson
   val gson = 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) }
})
}

然后构建您的项目,从 gradle 任务中您应该找到 Tasks->build->jar 单击它,仅此而已。您的项目文件夹中有您的 jar 文件,build->libs->project.jar.

现在您可以使用以下命令运行将您的 jar 文件作为 java jar 文件:

java -jar your_project_package.jar

exemple

希望对你有所帮助