请问在有依赖的情况下如何用Kotlin打包成一个jar文件或直接编译到二进制可执行文件?
事情是这样的:我想写一个密码生成器(随机字符串生成器),在IDE中用Gradle导入了implementation("org.apache.commons", "commons-lang3", "3.10")
的依赖,写了如下程序:
import org.apache.commons.lang3.RandomStringUtils.randomAscii
fun main() {
while (true) {
println("请输入随机生成字符串的位数:")
readLine()!!.run { randomAscii(toInt()) }.let(::println)
}
}
然后我把依赖的jar
和kt
文件放在同一目录下,执行:
kotlinc passwdGenerator.kt -cp commons-lang3-3.10.jar -include-runtime -d pg.jar
编译通过,但运行时(我输入数字后)报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.commons.lang3.RandomStringUtils
找不到类应该在编译时就不通过,为什么我会在运行时得到这个报错?我应该如何解决此问题?
如果要更进一步,直接在IDE中编译成native,需要怎么做?