Scala REPL 无法导入包

lhb25 阅读:19 2024-11-01 17:39:52 评论:0

我正在尝试在 Scala REPL 中导入 com.lambdaworks.crypto.SCryptUtil ( from crypto )。我正在从包含 com/lambdaworks/crypto 的 Java 目录运行 REPL。

REPL 无法找到 com.lambdaworks.crypto.SCryptUtil,但它可以自动完成直到 com.lambdaworks.crypto 但之后找不到任何内容.

当我在我的项目中包含包后在 IntelliJ IDEA 中使用 REPL 时,我能够找到 SCryptUtil 类。

我是否遗漏了一些导入所需的类路径参数?

请您参考如下方法:

REPL 不会为您编译 Java 代码——它只是自动完成那么远,因为它知道目录结构,但是一旦它到达 crypto 目录,它就找不到任何类文件。

您可以通过向上移动一个目录并打开一个新的 REPL 来更明显地看到这一点——您将能够自动完成 import java.com.lambdaworks.crypto,尽管这显然不是一个真实的包层次结构。

在这种情况下,您可以移动到项目根目录,运行mvn compile 来编译 Java 代码,然后像这样启动 REPL(仍然在项目根目录中):

scala -classpath target/classes 

现在您可以导入 com.lambdaworks.crypto.SCryptUtil

这仅适用于项目没有任何运行时依赖项,但在其他情况下,您可能需要将其他内容添加到类路径,以构建具有内置依赖项的 JAR(例如使用 Maven Assembly plugin ), 或者使用 Maven 的 mvn scala:console 目标 Scala plugin .


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号