2009-11-10 28 views
23

¿Es posible incluir una ejecución de archivo jar ejecutando el intérprete de Scala?Incluir archivo jar en el intérprete de Scala

Mi código está trabajando cuando compilo desde scalac:

scalac script.scala -classpath *.jar 

Pero me gustaría ser capaz de incluir un archivo jar cuando se ejecuta el intérprete.

Respuesta

19

Según ayuda ejecutable Scala todas las opciones de scalac están permitidos, para que pueda funcionar scala -classpath some.jar, yo sólo he probado y parece que funciona

24

En scala2.8, puede utilizar

scala>:jar JarName.jar 

añadir un frasco a la ruta de clase.

En Scala 2.8.1, no es: Tarro pero: cp

Y en Scala 2.11.7 no lo es: cp pero: Re (cuadernillo)

+0

¡increíble! ¿Dónde/cómo aprendiste sobre eso? – javadba

+3

Intenté esto y recibí una especie de mensaje de éxito ... pero no funcionó. Se agregó '/shared/spark-core_2.10-0.9.0-incubating-SNAPSHOT.jar'. Su nueva classpath es: ".:/Shared/spark-core_2.10-0.9.0-incubating-SNAPSHOT.jar". Pero la importación no funcionó. (NB: Comprobé que la importación funciona al agregar vía classpath de línea de comando) – javadba

+0

Lo mismo con javadba: import no funciona cuando se agrega un jar a classpath en el intérprete, y tendrá un mensaje de error * "el objeto xxx no es miembro del paquete yyy "* al hacer eso. – lcn

2

en mi caso estoy usando código Scala corredor versión 2.9.2. y tuve que agregar comillas. estoy usando estos archivos jar:

jdom-b10.jar, roma-0.9.jar

y todo va bien con esto:

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

incluir varios frascos int Scala REPL 2.10.0 -RC2

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

En Scala versión 2.11.6 del uso Scala REPL :require, mejor puede ser calculado a cabo mediante el uso de :help REPL

Por ejemplo:

$ 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 versión 2.11.5:

Aquí es un ejemplo de la adición de todos los frascos en la memoria caché de hiedra:

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 

También puede crear un local de carpeta de todas las jarras que necesita agregar y agregar de una manera similar.

Espero que esto ayude.

Cuestiones relacionadas