kotlin项目无法访问Java类的问题

使用IntelliJ创建一个Kotlin项目,然后在src/main/kotlin中创建一个java接口:Animal.java,然后在Main.kt中打印这个java接口,如下:

kotlin 复制代码
fun main() {
    println(Animal::class.java)
}

代码在编辑器中并没有报错,但是运行main函数时报错,异常如下:

kotlin 复制代码
Exception in thread "main" java.lang.NoClassDefFoundError: Animal
	at MainKt.main(Main.kt)
	at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: Animal
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:827)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:1112)
	... 2 more

解决方法很简单,把Animal.java放到src/main/java目录中即可,如下图所示:

简单总结就是java的类要放到src/main/java目录,kotlin的类要放到src/main/kotlin的目录。

另外,在src/test/kotlin中的kotlin的测试类如果要访问java类,这个java类也必须是放在src/main/java中的才可以访问到,如果放在src/main/kotlin中则访问不到。

另外需要提醒一下,与Android开发不同,AndroidStudio项目中,kotlinjava的类可以同时放在src/main/java目录下,而且相互访问是没问题的。

相关推荐
移幻漂流3 小时前
Kotlin 如何解决 Java 的核心痛点:现代语言特性的深度剖析
java·python·kotlin
zhangphil5 小时前
Kotlin实现Glide/Coil图/视频加载框架(二)
android·kotlin
Rubin智造社6 小时前
见路不走:从《天幕红尘》读懂2026年的创新密码
android·开发语言·kotlin
冬奇Lab1 天前
【Kotlin系列08】泛型进阶:从型变到具体化类型参数的类型安全之旅
android·开发语言·windows·安全·kotlin
zh_xuan1 天前
kotlin 尾随Lambda表达式函数的常用简写
开发语言·kotlin
zh_xuan2 天前
kotlin对集合数据的操作
开发语言·kotlin
zh_xuan2 天前
kotlin函数的一些用法
开发语言·kotlin
aqi002 天前
FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer
android·ffmpeg·kotlin·音视频·直播·流媒体
移幻漂流2 天前
Kotlin与Java共生之道:解密互操作底层原理与最佳实践
java·python·kotlin
低调小一2 天前
Kotlin Multiplatform + 声明式 UI 三端实战:从工程结构到鸿蒙适配
ui·kotlin·harmonyos