Either kotlin-runtime
has to be in classpath
and verify with $ echo $CLASSPATH
.
Or you have to add kotlin-runtime
to maven and then assemble inside the jar itself with mvn compile assembly:single
,
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-runtime</artifactId>
<version>1.1.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.1.3</version>
<scope>compile</scope>
</dependency>
which need to be attached to artifact as well and can be done with assembly-plugin
.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>event.handlers.InventoryEventHandler</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
you can verify the kotlin-runtime is added to jar by
$ jar -tf target/amz-wavelength-1.0-SNAPSHOT-jar-with-dependencies.jar | grep kotlin-runtime
META-INF/kotlin-runtime.kotlin_module
or
$ jar -tf target/amz-wavelength-1.0-SNAPSHOT-jar-with-dependencies.jar | grep "kotlin/jvm/internal/*"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…