2016-10-19 4 views
0

Итак, я попытался импортировать библиотеку в Scala, которая поставляется в виде Jar.
Я искал решения онлайн в течение полудня сегодня и, по крайней мере, дошел до стадии, где я могу успешно добавить банку в путь класса.Импорт библиотеки Jar из Classpath в Scala

Но когда я пытаюсь импортировать его сейчас, он, похоже, не работает. Я получаю сообщение об ошибке: не найден. Я работаю в среде 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._ 
     ^

Большое спасибо за любые комментарии. Любая помощь очень ценится.

+0

Это мой первый пост, так или иначе форматирование кода Didn Я работаю для меня. Если кто-нибудь знает, как его изменить, сообщите мне, поэтому я могу сделать свой вопрос более читаемым. Также открыта для других предложений, как улучшить этот вопрос. Благодаря! – 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-convention # t = 201610201602042992057 –

+0

спасибо, я посмотрю! – mexmex