[英]Include jar file in Scala interpreter
是否可以包含运行Scala解释器的jar文件?
当我从scalac编译时,我的代码正在工作:
scalac script.scala -classpath *.jar
但我希望能够在运行解释器时包含一个jar文件。
在scala2.8中,您可以使用
scala>:jar JarName.jar
将jar添加到类路径中。
在Scala 2.8.1中,它不是:jar但是:cp
在Scala 2.11.7中它不是:cp但是:re(quire)
根据scala可执行文件帮助scalac的所有选项都是允许的,所以你可以运行scala -classpath some.jar
,我刚试过看起来它看起来很有效
在Scala REPL 2.10.0-RC2中包含多个jar
scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar
在我的情况下,我使用Scala代码运行版2.9.2。 我不得不加上引号。 我正在使用这个jar文件:
jdom-b10.jar,rome-0.9.jar
这一切都很顺利:
scala -classpath "*.jar" feedparser.scala
在scala版本2.11.6中来自scala REPL使用:require
,最好通过使用:help
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.
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的本地文件夹,并以类似的方式添加它。
希望这可以帮助。
“lib / * .jar”生成一个列表,其中的项目之间没有“:”或“;” 按要求。 因为Java 6“lib / *”应该可以工作,但有时候不行(classpath设置在其他地方)
我用的脚本如下:
视窗:
@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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.