gpt4 book ai didi

java - 如何使用外部 java 库在命令行中编译和运行 kotlin 程序

转载 作者:行者123 更新时间:2023-11-30 10:08:52 29 4
gpt4 key购买 nike

我是第一次尝试 kotlin。

我能够在命令行上在 kotlin 中运行编译 hello world 程序,但我无法编译我想包含外部 java 库的程序

import com.google.gson.Gson

data class Person(val name: String, val age: Int, val gender: String?)

fun main(args: Array<String>) {
println("Hello world");
val gson = Gson()
val person = Person("navin", 30, null)
val personJson = gson.toJson(person)
println(personJson)
}

目录结构

➜  kotlin tree
.
├── gson.jar
├── json.jar
└── json.kt

0 directories, 3 files
➜ kotlin

代码编译工作正常,但我无法运行该程序

➜  kotlin kotlinc -classpath gson.jar json.kt -include-runtime -d json.jar
➜ kotlin java -jar json.jar -cp gson.jar
Hello world
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
at JsonKt.main(json.kt:7)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
➜ kotlin

需要帮助了解如何运行上述程序。

最佳答案

当您使用-jar 时,-cp 参数将被忽略,因此您无法指定任何额外的依赖项。相反,您需要在 -cp 参数中指定这两个 jar:

java -cp json.jar:gson.jar JsonKt

关于java - 如何使用外部 java 库在命令行中编译和运行 kotlin 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53582212/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com