2016-10-19 153 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