是否可以包含运行Scala解释器的jar文件?
当我从scalac编译时,我的代码正常工作:
scalac script.scala -classpath *.jar
但是我希望能够在运行解释器时包含一个jar文件。
答案 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
中包含多个jarscala -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)
我使用的脚本如下:
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
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