在Scala解释器中包含jar文件

时间:2009-11-10 12:00:03

标签: scala jar interpreter

是否可以包含运行Scala解释器的jar文件?

当我从scalac编译时,我的代码正常工作:

scalac script.scala -classpath *.jar

但是我希望能够在运行解释器时包含一个jar文件。

7 个答案:

答案 0 :(得分:26)

在scala2.8中,您可以使用

scala>:jar JarName.jar

将jar添加到类路径中。

在Scala 2.8.1中,它不是:jar但是:cp

在Scala 2.11.7中,它不是:cp而是:re(quire)

答案 1 :(得分:19)

根据scala可执行文件帮助,允许使用scalac的所有选项, 所以你可以运行scala -classpath some.jar,我刚刚尝试过它看起来很有效

答案 2 :(得分:5)

在Scala REPL 2.10.0-RC2

中包含多个jar
scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar

答案 3 :(得分:2)

在我的情况下我使用的是Scala代码运行器版本2.9.2。我不得不加上引号。 我正在使用这个jar文件:

jdom-b10.jar,rome-0.9.jar

这一切都很顺利:

scala -classpath "*.jar" feedparser.scala

答案 4 :(得分:2)

在scala版本2.11.6中,来自scala REPL使用:require,最好通过使用来自REPL的: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.

答案 5 :(得分:1)

Scala版本2.11.5:

以下是在常春藤缓存中添加所有jar的示例:

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

您还可以创建需要添加的所有jar的本地文件夹,并以类似的方式添加它。

希望这会有所帮助。

答案 6 :(得分:0)

“ lib / *。jar”生成一个列表,其中项目之间的空格不是“:”或“;”。按要求。 由于Java 6“ lib / *”应该可以工作,但有时不能工作(在其他地方设置了classpath)

我使用的脚本如下:

  1. Windows:

    @rem all *.jars in lib subdirectory
    
    @echo off
    
    set clp=.
    
    for %%c in (lib\*.jar) do call :Setclasspath %%c
    
    echo The classpath is %clp% 
    
    scala -classpath %clp% script.scala
    
    exit /B %ERRORLEVEL%
    
    :Setclasspath
    set clp=%clp%;%~1
    exit /B 0
    
  2. Linux:

    #!/bin/bash
    
    #all *.jars in lib subdirectory
    
    clp="."
    
    for file in lib/*
    do
      clp="$clp:$file"
    done
    
    echo $clp
    
    
    scala -classpath $clp script.scala