当前位置: 首页 > article >正文

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

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

fun main() {
    println(Animal::class.java)
}

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

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


http://www.kler.cn/a/487921.html

相关文章:

  • Babylon.js行为编写及使用参考
  • AI多模态技术介绍:视觉语言模型(VLMs)指南
  • 设计模式-结构型-组合模式
  • Git:Cherry-Pick 的使用场景及使用流程
  • Git最便捷的迁移方式
  • Flink源码解析之:Flink on k8s 客户端提交任务源码分析
  • 龙蜥Linux系统部署docker21.1.3版本
  • 同域名前后端分离项目 nginx配置实践
  • LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异
  • 3D目标检测数据集——kitti数据集
  • 计算机网络之---HTTP协议
  • TDengine + MQTT :车联网时序数据库如何高效接入
  • 第一天 了解HarmonyOS的起源、发展、核心特性
  • 每天40分玩转Django:Django 实操图书管理系统
  • 一款面向数字孪生的数据中台
  • QT 常用控件的常用方法
  • Zookeeper 集群安装
  • 机房预约系统|Java|SSM|JSP|
  • 在 Vivado 的 Block Design 中,如果你不想让某个 IP 核的引脚连接到外部引脚,可以通过以下几种方法来处理:
  • Flutter Web 选取并上传图片
  • 在ubuntu下对NFS做性能测试
  • 【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述
  • [java基础-集合篇]优先队列PriorityQueue结构与源码解析
  • 【JavaEE】—— SpringBoot项目集成百度千帆AI大模型(对话Chat V2)
  • SpringCloud系列教程:微服务的未来(十一)服务注册、服务发现、OpenFeign快速入门
  • Web基础之什么是HTTP协议