【问题标题】:Import Jar Library from Classpath in Scala从 Scala 中的类路径导入 Jar 库
【发布时间】:2017-03-01 13:01:33
【问题描述】:

所以我尝试将一个库导入 Scala,它以 Jar 的形式提供。
今天在网上找了半天的解决方案,至少到了可以成功将jar添加到class path的阶段。

但是当我现在尝试导入它时,它似乎不起作用。我收到一个错误:未找到。我在 anaconda 环境中工作,我想在不使用 sbt 的情况下加载包。

这是我运行的代码:

scala> :require tinyir.jar

返回

Added '/my/directory/structure/tinyir.jar' to classpath.

然后我运行:

scala> import tinyir._

我收到:

<console>:11: error: not found: value tinyir
import tinyir._
          ^

非常感谢任何 cmets。 非常感谢任何帮助。

【问题讨论】:

  • 这是我的第一篇文章,不知何故代码格式对我不起作用。如果有人知道如何更改它,请告诉我,这样我可以使我的问题更具可读性。也对如何改进这个问题的其他建议持开放态度。谢谢!
  • 你需要在代码块前添加一个空行,至少缩进四个空格。我为你编辑了它。为了能够保存编辑,我还需要更改 've to have,虽然这样就可以了 ;-)
  • 感谢您的编辑!我希望有人能回答我的问题:)

标签: scala import jar classpath


【解决方案1】:
:require tinyir is enough

我假设您正在学习 Scala 课程并尝试使用 http://www.da.inf.ethz.ch/files/tinyir.jar jar,

记住 Scala 使用包,

lnramirez:Downloads lnramirez$ ls -ltrh
-rw-r--r--@  1 lnramirez  1240321454    42K Oct 19 15:43 tinyir.jar
lnramirez:Downloads lnramirez$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_65).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :require tinyir.jar
Added '/Users/lnramirez/Downloads/tinyir.jar' to classpath.

scala> import ch.ethz.dal.tinyir._
import ch.ethz.dal.tinyir._

scala> 

【讨论】:

  • 你在现场!非常感谢,它有效!我很高兴在这么高的地方结束这一天。正如您正确假设的那样,这是我第一次使用 scala,这是一门课程要求,我也没有任何 Java 经验。但是,我非常渴望学习。你能解释一下为什么我必须在 tinyir._ 前面包含 ch.ethz.dal 吗?这与 jar 的打包方式有关吗?
  • scala 依赖于 java,java 模块是在包中定义的,他们决定他们的包是 ch.ethz.dal.tinyir,实际上里面还有其他包。您必须包含它,因为一个类由包 + 名称定义确实是一个较长的主题,您应该尝试更好地理解它,这里有一些文档:stackoverflow.com/documentation/java/2697/…
猜你喜欢
  • 2014-07-15
  • 2019-10-30
  • 2012-04-22
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多