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目录下,而且相互访问是没问题的。

相关推荐
147API3 小时前
Claude JSON 稳定输出:Schema 校验与修复回路(Kotlin)
开发语言·kotlin·json·claude
Kapaseker4 小时前
解析 Compose 的核心概念 remember
android·kotlin
秋知叶i5 小时前
【Android Studio】Kotlin 第一个 App Hello World 创建与运行|超详细入门
android·kotlin·android studio
榴月子7 小时前
Mac 安装 Homebrew、 Java 和 Kotlin
java·macos·kotlin
ysh988810 小时前
2025年 Android Studio修仙传(kotlin版):基础篇
android·kotlin·android studio
JMchen12317 小时前
自定义View性能优化:从60fps到120fps的进阶之路
android·经验分享·性能优化·kotlin·自定义view
耶叶19 小时前
Kotlin 的 Generics
kotlin
耶叶19 小时前
kotlin的修饰符
android·开发语言·kotlin
2601_9491465320 小时前
安卓Android短信通知接口API示例代码:Java/Kotlin版App短信接口集成源码分享
android·java·kotlin
147API20 小时前
微软 Copilot Cowork 深度解析:用 Kotlin + 147API 手搓一个 AI Agent
kotlin·claude·147api·copilot cowork