简体   繁体   中英

How to create and reuse a package in Kotlin?

I have two kotlin files : mylib.kt and main.kt

mylib.kt is:

package mylib

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

and main.kt is:

import mylib.hello

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

I compile mylib with : kotlinc mylib.kt -d mylib.jar And main.kt with : kotlinc main.kt -classpath mylib.jar -include-runtime -d main.jar

I run java with: java -jar main.jar and got :

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

What I did wrong ? Thank you for helping.

kotlinc does not generate a jar that is executed via java -jar command. Instead, use java -classpath mylib.jar:main.jar MainKt .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM