【问题标题】:Scala REPL unable to import packgeScala REPL 无法导入包
【发布时间】:2012-11-15 16:59:22
【问题描述】:

我正在尝试在 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 类。

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

【问题讨论】:

    标签: scala import read-eval-print-loop


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      相关资源
      最近更新 更多