ValV
07/11/2019, 11:29 AMclass MyClass {
companion object {
public fun run(args: Array<String>) {
...
}
}
public fun main(args: Array<String>) {
...
}
}
How to call run
from main
?diesieben07
07/11/2019, 11:32 AMrun(args)
ValV
07/11/2019, 11:43 AMdiesieben07
07/11/2019, 11:54 AMmain
fun cannot be used as a JVM main method, those need to be static.Pavlo Liapota
07/11/2019, 11:58 AMmain
should be a top level function and class name would be <filename> + Kt
then.
Or you can put main
into a companion object of a class, but then you also need annotate this function with @JvmStatic
.ValV
07/11/2019, 12:02 PMValV
07/11/2019, 12:14 PMPavlo Liapota
07/11/2019, 12:22 PMValV
07/11/2019, 12:24 PMError: Could not find or load main class testline.ExampleKt
ValV
07/11/2019, 12:25 PMsrc/
βββ main
β βββ kotlin
β β βββ testline
β β βββ Example.kt
β βββ resources
βββ test
βββ kotlin
β βββ testline
β βββ ExampleTest.kt
βββ resources
ValV
07/11/2019, 12:27 PMapplication {
// Define the main class for the application.
mainClassName = "testline.ExampleKt"
}
tasks {
withType<Jar> {
manifest {
attributes(mapOf("Main-Class" to application.mainClassName))
}
}
}
diesieben07
07/11/2019, 12:29 PMExample.kt
?ValV
07/11/2019, 12:32 PMpackage testline
// imports
import java.io.IOException
...
class Example {
companion object {
@JvmStatic
public fun main(args: Array<String>) {
...
}
}
}
//fun main(args: Array<String>) {
// Example.main(args)
//}
// vim: se et ts=2 sw=2 number:
diesieben07
07/11/2019, 12:34 PMcompanion object
+ @JvmStatic
your main
method will be in class Example
, not ExampleKt
ValV
07/11/2019, 12:35 PMException in thread "main" java.lang.NoClassDefFoundError: org/jline/reader/UserInterruptException
at testline.Example.<clinit>(Example.kt)
Caused by: java.lang.ClassNotFoundException: org.jline.reader.UserInterruptException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
ValV
07/11/2019, 12:35 PMValV
07/11/2019, 12:36 PMgradle run
it worksValV
07/11/2019, 12:36 PMmain
ValV
07/11/2019, 12:36 PMValV
07/11/2019, 12:40 PMValV
07/11/2019, 12:40 PMThread()
affects?