Kotlin Script如何跨目录/包正确导入自定义HashTable类
Kotlin 脚本导入自定义类解决方案
Kotlin 脚本(*.kts)运行时默认不会自动加载项目 src/main/kotlin 下的自定义类,仅调整工作目录不会让脚本识别到源代码路径,可按以下方案解决:
方案1:IntelliJ 运行配置添加依赖(本地开发最适用)
- 打开顶部菜单栏「运行」→「编辑配置」,找到
wordcount.kts对应的运行配置 - 在「类路径和模块的源代码」选项中,添加项目根目录下的
src/main/kotlin路径作为依赖 - 导入语句直接写
import dataStructures.HashTable即可,不需要额外加kotlin前缀
方案2:脚本内主动指定源码路径(无需修改运行配置)
在 wordcount.kts 文件最顶部添加以下代码,手动将源码根目录加入类路径:
@file:DependsOn("../../src/main/kotlin")
后续同样用 import dataStructures.HashTable 导入类即可。
方案3:命令行运行场景解决方案
如果需要在命令行执行脚本,可以先将自定义类编译为jar包再关联运行:
- 进入项目根目录,执行编译命令生成jar包:
kotlinc src/main/kotlin/dataStructures/HashTable.kt -d hashtable.jar - 运行脚本时指定依赖的jar包:
kotlin -cp hashtable.jar scripts/kotlin/wordcount.kts
注意事项
- 先确认
HashTable.kt文件顶部的包声明为package dataStructures,包名不匹配会导致导入失败 - 确认
HashTable类的可见性为public,私有类/内部类无法被外部脚本直接导入
内容的提问来源于stack exchange,提问作者ryanflynn001
相关产品推荐
相关产品推荐

