Как создать и повторно использовать пакет в Kotlin? - PullRequest
1 голос
/ 25 января 2020

У меня есть два kotlin файла: mylib.kt и main.kt

mylib.kt is:

package mylib

fun hello() {
    println ("Hello")
}

и main.kt - это:

import mylib.hello

fun main(args: Array<String>) {
   hello()
}

Я скомпилирую mylib с: kotlinc mylib.kt -d mylib.jar И main.kt с: kotlinc main.kt -classpath mylib.jar -include-runtime -d main.jar

Я запускаю java с: java -jar main.jar и получил:

Exception in thread "main" java.lang.NoClassDefFoundError: mylib/MylibKt
    at MainKt.main(main.kt:4)
Caused by: java.lang.ClassNotFoundException: mylib.MylibKt
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more

Что я не так сделал? Спасибо за помощь.

1 Ответ

1 голос
/ 26 января 2020

kotlinc не генерирует банку, которая выполняется с помощью команды java -jar. Вместо этого используйте java -classpath mylib.jar:main.jar MainKt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...