2009-11-10 2 views
23

Можно ли включить запуск файла jar-файла с использованием интерпретатора Scala?Включить файл jar в интерпретаторе Scala

Мой код работает, когда я компилирую из scalac:

scalac script.scala -classpath *.jar 

Но я хотел бы, чтобы иметь возможность включать в файл банку при запуске интерпретатора.

ответ

19

По исполняемой помощи лестницы всех вариантов из разрешенных скаляров, , поэтому вы можете запускать scala -classpath some.jar, я только что попробовал, и похоже, что он работает

24

В scala2.8, вы можете использовать

scala>:jar JarName.jar 

добавить баночку к классам.

В Scala 2.8.1, это не так: баночка, но: ср

И в Scala 2.11.7 это не так: ф а: повторный (десть)

+0

удивительный! где/как вы узнали об этом? – javadba

+3

Я пробовал это и получил сообщение об успешном завершении ... но это не сработало. Добавлено '/shared/spark-core_2.10-0.9.0-incubating-SNAPSHOT.jar'. Ваш новый путь к классам: ".:/Shared/spark-core_2.10-0.9.0-incubating-SNAPSHOT.jar". Но импорт не сработал. (NB: я проверил, что импорт работает при добавлении через командную строку classpath) – javadba

+0

То же самое с javadba: import не работает, когда jar добавляется в classpath в интерпретаторе, и у вас будет сообщение об ошибке * «object xxx не является членом пакета yyy "* при этом. – lcn

2

в моем случае я использую Scala code runner version 2.9.2. и мне пришлось добавить кавычки. Я использую эту банку файлы:

JDOM-b10.jar, рим-0.9.jar

и все идет хорошо с этим:

scala -classpath "*.jar" feedparser.scala 
5

Включить несколько банок Int Scala РЕПЛ 2.10.0 -RC2

scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar 
2

В Scala версии 2.11.6 от использования Scala REPL :require, лучше всего может быть просчитан с помощью :help из РЕПЛА

Например:

$ scala 
Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45). 
Type in expressions to have them evaluated. 
Type :help for more information. 
scala> :require lift-json_2.11-3.0-M5-1.jar 
Added '<path to lift json library>/lift-json/lift-json_2.11-3.0-M5-1.jar' to classpath. 
0

Scala версии 2.11.5:

Вот пример добавления все банки в кэше плющ:

scala -cp /Users/dbysani/.ivy2/cache/org.apache.spark/spark-streaming_2.10/jars/* 

scala> import org.apache.spark.streaming.StreamingContext 
import org.apache.spark.streaming.StreamingContext 

Вы также можете создать локальный папку всех банок, которые вам нужно добавить, и добавить их аналогичным образом.

Надеюсь, это поможет.

Смежные вопросы