1

我是 Kotlin 的新手,所以如果这是一个简单的问题,请原谅我。我正在编写一个 kotlin 脚本,我希望它可以利用自定义 Hashtable 实现来存储文件中的数据。我无法让脚本找到 HashTable 类。这是我的结构:

.
├── scripts
│   ├── kotlin
│   │   ├── [other scripts]
│   │   └── wordcount.kts
│   └── tests
│       └── wc
│           └── smallfile.txt
└── src
    ├── main
    │   └── kotlin
    │       └── dataStructures
    │           └── HashTable.kt
    └── test

脚本是wordcount.kts,我要上的课importHashTable.kt. 我试过了import dataStructures.HashTableimport kotlin.dataStructures.HashTable但无济于事。我还尝试将 PWD(在 IntelliJ 运行时配置中)调整到项目目录,但也没有成功。如何正确导入 HashTable?让我知道我是否可以提供任何进一步的信息!

4

1 回答 1

0

import用于链接到类路径中的内容,因此在使用之前,您需要允许编译器实际找到该 HashTable 类。

您有几个选项,但是我建议重命名wordcount.ktswordcount.main.kts(kotlin 脚本需要将可执行文件命名为 x.main.kts 才能使大多数功能正常工作),HashTable.kt并将HashTable.kts其与@file:Import(<path-to-hashtable.kts>).

如果您无法重命名哈希表,则需要通过将其编译到类文件并将其添加到类路径中来导入它kotlinc -script -cp <dir-with-.class> wordcount.main.kts。或者编译成 jar 并@file:DependsOn<path-to-jar>在脚本中链接 jar。

有关所有这些东西的参考,请看这里:https ://github.com/Kotlin/KEEP/blob/master/proposals/scripting-support.md

于 2021-10-21T07:41:50.480 回答