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项目中,kotlin和java的类可以同时放在src/main/java目录下,而且相互访问是没问题的。

相关推荐
墨天梦6 小时前
B17_LifecycleLiveData与Flow
android·kotlin
熊猫钓鱼>_>19 小时前
Kotlin Multiplatform for OpenHarmony 实战:为 Landscapist 实现图片加载适配
开发语言·kotlin·华为云·ai编程·harmonyos·鸿蒙·openharmony
ZealSinger20 小时前
Kotlin2.4迁移context parameters
kotlin·协程·迁移·kotlin2.4
墨天梦20 小时前
B16_Material主题与可访问交互
android·kotlin·交互
alexhilton1 天前
模块化Jetpack Compose架构
android·kotlin·android jetpack
mmsx2 天前
Android 测绘计算工程化:七四参数、高程拟合与单位系统
android·kotlin
事圆则缓2 天前
Kotlin Flow、StateFlow、SharedFlow 全解析:冷流、热流与 Android 状态管理
android·kotlin·php
应用市场2 天前
把旧 Pixel 变成相册备份中转站(上):Mac 到安卓的照片传输工具设计——流式上传、sha256 校验、adb forward 与 Bonjour
android·macos·adb·kotlin·swift
Kapaseker2 天前
Android 以后可能不会再有横竖屏适配了
android·kotlin
墨天梦2 天前
B13_通知图片相机与影音
android·数码相机·kotlin