正常情况下,kotlin做为优化后的java他们两是可以做到相互操作的。而且可以没有任何第三方库加持。

而在某些时候会发现他们不能一起使用。会报以下错误

1
2
3
4
5
6
7
8
Exception in thread "main" java.lang.NoClassDefFoundError: entity/SSchool
at MainKt.test(Main.kt:19)
at MainKt.main(Main.kt:16)
Caused by: java.lang.ClassNotFoundException: entity.SSchool
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 2 more

下图是目录结构
image
解决办法就是,在main下在建立一个java的目录,这样子,把java的类移植过来,此时,他们公用一个resource。再把entity移植过去,此时,他们就可以正常使用了。
image