2016-10-19 103 views
0

所以我试图导入一个库到Scala,它是一个罐子。
我一直在寻找今天半天在线的解决方案,至少到了我可以成功将jar添加到课程路径的阶段。从Scala类路径中导入Jar库

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

这是我运行的代码:它返回

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

然后

scala> :require tinyir.jar 

我运行:

scala> import tinyir._ 

和我接收:

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

非常感谢您的任何意见。 任何帮助非常感谢。

+0

这是我的第一篇文章,不知何故代码格式化没不为我工作。如果有人知道如何改变它,请让我知道,所以我可以让我的问题更具可读性。也打开其他建议如何改善这个问题。谢谢! – mexmex

+0

您需要在代码块之前添加一个空行,该代码块缩进至少四个空格。我为你编辑它。为了能够保存编辑内容,我还需要更改已有的内容,但这样做一切正常;-) – derM

+0

感谢您的编辑!我希望有人对我的问题有一个答案:) – mexmex

回答

1
:require tinyir is enough 

我假设你正在做的Scala课程,并尝试使用http://www.da.inf.ethz.ch/files/tinyir.jar罐子,

记得Scala中使用包,

lnramirez:Downloads lnramirez$ ls -ltrh 
[email protected] 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> 
+0

你真的在看!非常感谢,它的工作原理!我很高兴能在这个高点结束这一天。正如你正确地假设的那样,这是我第一次使用scala,这是一门课程要求,我现在也没有任何Java经验。不过,我很渴望学习。你能解释为什么我必须将ch.ethz.dal包含在tinyir._前面吗?那个罐子是如何包装的? – mexmex

+0

scala依赖于java,java模块在包中定义,他们决定他们的包是ch.ethz.dal.tinyir,实际上里面还有其他包。你必须包括它,因为一个类是由包+名称定义 是一个更长的话题,你应该尝试更好地理解它,这里有一些文档: http://stackoverflow.com/documentation/java/2697/ oracle-official-code-standard/9031/naming-conventions#t = 201610201602042992057 –

+0

谢谢我会看看它! – mexmex