Supporting libraries for Kotlin?


#1

I now can compile an Accessor endpoint for NetKernel in Kotlin. When I added this endpoint to a NetKernel space (which causes the compiled Kotlin code to be loaded by the NetKernel classloader as a Java class), I get an error message (shown below) that indicates NetKernel cannot find jet.JetObject.

This is no surprise - I would have expected Kotlin to include supporting compiled classes. There are several ways to provide such supporting classes to the NetKernel classloader and I’ll experiment with this techniques.

My question is - where are the supporting libraries for Kotlin? Can I download them as a JAR file?

– Randy

Error message reported by NetKernel:

W 04:39:41 RootSpaceWit~ Commission of endpoint [MapperOverlay] in space [System / Service] failed: <ex> <ex>   <id>java.lang.NoClassDefFoundError</id>   <message>jet/JetObject</message>   <stack>   <level>java.lang.ClassLoader.defineClass1() line:-2</level>   <level>java.lang.ClassLoader.defineClassCond() line:631</level>   <level>java.lang.ClassLoader.defineClass() line:615</level>   <level>java.lang.ClassLoader.defineClass() line:465</level>   <level>org.netkernel.layer0.util.DynamicURLClassLoader.createClassFromInputStream() line:289</level>   <level>org.netkernel.layer0.util.DynamicURLClassLoader.innerLoadClass() line:268</level>   <level>org.netkernel.layer0.util.DynamicURLClassLoader.innerLocalLoadClass() line:138</level>   <level>org.netkernel.layer0.util.SpaceClassLoader.loadClass() line:181</level>   <level>org.netkernel.module.standard.SpaceFactory.buildEndpoint() line:143</level>   <level>org.netkernel.module.standard.SpaceFactory.innerBuildSpace() line:102</level>   <level>... 10 more</level>   </stack> </ex> <ex>   <id>java.lang.ClassNotFoundException</id>   <message>jet.JetObject</message>   <stack>   <level>java.net.URLClassLoader$1.run() line:202</level>   <level>java.security.AccessController.doPrivileged() line:-2</level>   <level>java.net.URLClassLoader.findClass() line:190</level>   <level>java.lang.ClassLoader.loadClass() line:306</level>   <level>java.lang.ClassLoader.loadClass() line:247</level>   <level>org.netkernel.layer0.util.SpaceClassLoader.loadClass() line:186</level>   <level>java.lang.ClassLoader.defineClass1() line:-2</level>   <level>java.lang.ClassLoader.defineClassCond() line:631</level>   <level>java.lang.ClassLoader.defineClass() line:615</level>   <level>java.lang.ClassLoader.defineClass() line:465</level>   <level>... 16 more</level>   </stack> </ex> </ex>


#2

If you managed to compile the sources, you certainly have the kotlin-runtime.jar somewhere. If you used the IDE, it suggested you to copy it to some directory under your project. In any case, the jar is available from the compiler distribution.


#3

Thank you. I now have a Kotlin Accessor endpoint working in NetKernel.

The next step is to create a Kotlin language module for NetKernel.